Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: danielo- en 22 Noviembre 2010, 00:46 am



Título: que relajo! multiplicar en ensamblador
Publicado por: danielo- en 22 Noviembre 2010, 00:46 am
Hola a todos, vengo hoy bien enojado con el lenguaje ensamblador, estoy creando un programa, pero de la multiplicación no paso, y es que llevo todo el dia peliando con esto, y esque no entienfdo como funciona, si puedieran echarme una manita con esto :
Estoy multiplicando 2 numeros que producen un desbbordamiento para el registro ax, por lo que el resultado queda guardado en dx la parte alta y en ax la parte baja, hasta aqui todo bien, pero despues como le hago para utilizar ese nummero? es decir, si el resultado lo quiero implementar para otra multiplicación, como lo indico?
 tengo:
Código
  1. mov ax,10000
  2. mov bx,7
  3. mul bx
  4. ;ok, aora el resultado lo quiero multiplicar nuevamente,
  5. ;como hago esto??
  6.  

como se hace esto? no tengo idea, xfa ayuda!!!


Título: Re: que relajo! multiplicar en ensamblador
Publicado por: Debci en 22 Noviembre 2010, 16:32 pm
Donde deja mul el número que ha multiplicado?
Si lo sabes no tienes mas que multiplicar el valor de dicho registro nuevamente.

Saludos


Título: Re: que relajo! multiplicar en ensamblador
Publicado por: Иōҳ en 22 Noviembre 2010, 19:40 pm
en eax =32bits

ax=16 bits

la verdad no se como multiplicas, sin saber donde queda el resultado <.<"


Título: Re: que relajo! multiplicar en ensamblador
Publicado por: danielo- en 23 Noviembre 2010, 07:51 am
lo que pasa es que uso tasm, que solo maneja registros de 16 bits :(
y si se donde queda el resultado, queda en ax parte alta y dx parte baja, pero ya despues no se como usar ese numero que se a quedado dividido en 2 registros. :(


Título: Re: que relajo! multiplicar en ensamblador
Publicado por: Иōҳ en 23 Noviembre 2010, 19:20 pm
dependiendo del resultado

dx:ax

si ocupa 16 bits o menos, en ax, si ocupa mas de 16bits pone lo que alcanza en ax y lo restante en dx.

usa un debugger, es la mejor manera de que aprendas.