SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: davomb en Lunes 3 de Julio de 2006, 00:48
-
tengo un problema.. no se mucho de ensamblador y tengo que hacer un programita..
el problema es al hacer una division (div ebx). Bien, el resultado de la division sobrepasa el numero maximo que permite almacenar ebx y me suelta un error tipo "divide error". Pretendo solo obtener el resto de la division. Existe alguna instruccion tipo MOD que obtenga solo el resto. En caso contrario como podria realizar la division sin que me salte este error.
Estoy tratando de hacer una division de un numero de 64 bits almacenado en edx:eax por uno de 16 bits almacenado en ebx (0000xxxxh).
Utilizo ensamblador 8086 .
Gracias de antemano.
-
mira yo no se mucho pero ten en cuenta los sgtes conceptos:
(((((((Voy a hablarte en registros de 16 bits))))))
*tanto en la multiplicacion como en la division se realiza entre ax y el resultado se guarda en la misma osea
div bx(utiliza un reg q no sea dx de preferencia) --> (ax=bx/ax)
mul bx --> ax=ax*bx
*en la division ...el residuo se guarda en dx, osea si el resultado de la division pasa de los 16 bits primero se ocupan los 16 bits de ax y luego se ocupan los otros 16bits de dx
esto tambien es aplicable a los reg de 32bits
(pero tendras q tomar ciertas consideraciones... creo)
espero q te sea de ayuda... aunq te repito yo no se mucho de esto solo cosillas puede ser q me equivoque...si es asi hay mas gente en el foro para ayudar y corregirnos ...claro:D