Autor
|
Tema: extraer cifras decimales de un DD (Leído 5,358 veces)
|
Growdes
Desconectado
Mensajes: 8
|
Hola soy un estudiante, de ingenieria informatica de cienfuegos y necesito que me aclaren una duda de ensamblador si esta en sus posibilidades, la cuestion es la sgte: ? Se necesita separar las cifras decimales de una doble palabra, a un arreglo de byte, lo que tengo hecho es lo sgte? ?? Dato DD 54545H ?? ARR DB ?,?,?,?,?,?,?,?,?,? ?? ? Mov AX, word ptr Dato ; pongo el lsb en ax ? MOv DX, word ptr Dato +2 , pongo el msb en dx?
Lo que me sucede es que no puedo dividir por 10 o por 100 y luego por 1000 por que el cociente y el resto no me cabrian en ax o dx, mi pregunta es como puedo extraer estas cifras decimales del numero de doble palabra, saludos al expertos y disculpe la molestia;
|
|
« Última modificación: 30 Junio 2009, 23:38 pm por Eternal Idol »
|
En línea
|
|
|
|
ny0x
Desconectado
Mensajes: 336
|
pues lo que das no es muy ilustrativo, y si manejas un dword dx:ax al hacer la divicion queda en dx resto y en ax resultado.
|
|
|
En línea
|
|
|
|
Growdes
Desconectado
Mensajes: 8
|
por ejemplo del numero NUM DB 254 ARR DB ?,?,? si pongo en AX el numero MOV AX, NUM MOV BX, 10 DIV BX
lo que me queda es de resto en AH o AL no recuerdo bien es 4 y si divido nuevamente me queda 5 etc al final ARR DB 2,5,4 pero para doble palabra no funciona igual porque si divido por 10 el resto en AX es muy grande y me genera int 0, necesito otra via o sugerencias por favor
|
|
|
En línea
|
|
|
|
ny0x
Desconectado
Mensajes: 336
|
no te entendi bien pero puedes hacer esto: mueve el dword a eax y pon edx a 0 y a continuacion divides, el resultado queda en eax y el resto en edx
|
|
|
En línea
|
|
|
|
Growdes
Desconectado
Mensajes: 8
|
no te entendi bien pero puedes hacer esto: mueve el dword a eax y pon edx a 0 y a continuacion divides, el resultado queda en eax y el resto en edx
SE ME OLVIDO LO MAS IMPORTANTE, NO SE PUEDEN USAR REGISTROS EXTENDIDOS O SEA EAX O EBX
|
|
|
En línea
|
|
|
|
|
Growdes
Desconectado
Mensajes: 8
|
Nose a mi me suena a tarea , de ser el caso en este foro no se ahcen tareas . el problema no radica en eso y espero no molestarlos no es una tarea, si quieres no me respondas ahora, me puedes responder dentro de un mes o dos , te lo voy a agradecer igual. Ademas yo creo codigo objeto con tasm.exe y lo enlazo con el TLink.exe y traceo con TD.exe,con ninguno de estos y con instrucciones del 80286 puedo utilizar registros extendidos si no ya tuviera resuelto el problema ya lo que planteo no tuviera gracia. Saludos
|
|
« Última modificación: 1 Julio 2009, 23:39 pm por Growdes »
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
Pero, las variables numericas no se definen con dd? porque pones DB? NUM DB 254 ARR DB ?,?,?
|
|
|
En línea
|
|
|
|
ny0x
Desconectado
Mensajes: 336
|
es lo mismo lo unico que cambia es el tamaño, nada mas que los bytes se usan usualmente para representar caracteres
|
|
|
En línea
|
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
Pero, las variables numericas no se definen con dd? porque pones DB? NUM DB 254 ARR DB ?,?,? No es que laas variaable numericas se definan con dd , ya que un dd es un dword osea 4 bytes ,la unica diferencia que si lo defines como dw o db o dq o cualquiera es el tamaño
|
|
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
|
|