Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Growdes en 30 Junio 2009, 23:05 pm



Título: extraer cifras decimales de un DD
Publicado por: Growdes en 30 Junio 2009, 23:05 pm
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;


Título: Re: extraer cifras decimales de un DD
Publicado por: ny0x en 30 Junio 2009, 23:37 pm
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.  :silbar:


Título: Re: extraer cifras decimales de un DD
Publicado por: Growdes en 30 Junio 2009, 23:45 pm
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
 


Título: Re: extraer cifras decimales de un DD
Publicado por: ny0x en 1 Julio 2009, 00:15 am
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


Título: Re: extraer cifras decimales de un DD
Publicado por: Growdes en 1 Julio 2009, 19:57 pm
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


Título: Re: extraer cifras decimales de un DD
Publicado por: YST en 1 Julio 2009, 21:32 pm
Nose a mi me suena a tarea , de ser el caso en este foro no se ahcen tareas ;) .


Título: Re: extraer cifras decimales de un DD
Publicado por: Growdes en 1 Julio 2009, 23:19 pm
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 


Título: Re: extraer cifras decimales de un DD
Publicado por: Erik# en 7 Julio 2009, 11:55 am
Pero, las variables numericas no se definen con dd? porque pones DB?

Citar
NUM DB 254
 ARR DB ?,?,?


Título: Re: extraer cifras decimales de un DD
Publicado por: ny0x en 7 Julio 2009, 20:04 pm
es lo mismo lo unico que cambia es el tamaño, nada mas que los bytes se usan usualmente para representar caracteres


Título: Re: extraer cifras decimales de un DD
Publicado por: YST en 7 Julio 2009, 20:55 pm
Pero, las variables numericas no se definen con dd? porque pones DB?

Citar
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 :P