INSTRUCCI0NES ARITMETICAS
Instrucciones Aritmeticas
Instruccion INC
La instrucion INC
se usa para incrementar un operando en uno. Funciona en un solo operando que puede estar en un registro o en memoria.
SINTAXIS:
El destino del operando podria ser un operando de 8 bits, 16 bits o 32 bits.
EJEMPLO:
Instruccion DEC
Se usa para decrementar un operando en uno.
El destino del operando podria ser un operando de 8 bitsm 16 bits o 32 bits.
EJEMPLO:
Instrucciones ADD y SUB (Suma y Resta)
estas instrucciones se utilizan para realizar sumas/restas simples de datos binarios en byte, palabra y palabra doble, es decir, para sumar o restar operandos de 8 bits, 16 bits o 32 bits, respectivamente.
La instruccion ADD/SUB puede tener lugar entre:
Registrese para registrarse.
Memoria para registrar.
Registrarse en la memoria.
Registrese a datos constantes.
Memoria a datos constantes.
Al igual que otras instrucciones, las operaciones de memoria a mamoria no son posibles con las instrucciones ADD/SUB. Una operacion ADD o SUB establece o borra los indicadores de desbordamiento.
EJEMPLO:
Se pedira dos digitos al ususario, los almacenara en EAX y EBX, agregara los valores, almacenara el resultado en una ubicacion de memoria res
y al final muestra el resultado.
Instruccion MUL/IMUL (Multiplicacion)
El MUL maneja datos sin firmar y IMUL maneja datos con signo. Pero ambos afectan la bandera de Acarreo Y Desbordamiento.
SINTAXIS:
La multiplicacion en ambos casos estar en un acomulador, dependiendo del tamaño del multipicando y el multiplicador y el producto generado tambien se almacena en dos registros dependiendo del tamañode los operandos.
Vemos el siguiente ejemplo:
Sr.No.
Escenarios
1
Cuando se multiplican dos bytes:
El multiplicando está en el registro AL y el multiplicador es un byte en la memoria o en otro registro. El producto está en AX. Los 8 bits de orden superior del producto se almacenan en AH y los 8 bits de orden inferior se almacenan en AL.
2
Cuando se multiplican dos valores de una palabra:
El multiplicando debe estar en el registro AX y el multiplicador es una palabra en la memoria u otro registro. Por ejemplo, para una instrucción como MUL DX, debe almacenar el multiplicador en DX y el multiplicando en AX.
El producto resultante es una palabra doble, que necesitará dos registros. La parte de orden superior (más a la izquierda) se almacena en DX y la parte de orden inferior (más a la derecha) se almacena en AX.
3
Cuando se multiplican dos valores de palabra doble:
Cuando se multiplican dos valores de palabra doble, el multiplicando debe estar en EAX y el multiplicador es un valor de palabra doble almacenado en la memoria o en otro registro. El producto generado se almacena en los registros EDX:EAX, es decir, los 32 bits de orden superior se almacenan en el registro EDX y los 32 bits de orden inferior se almacenan en el registro EAX.
EJEMPLO:
Ejemplo multiplicando 3 y 2 , imprimiendo el resultado:
Instrucciones DIV/IDIV
La division genera dos elementos, un cociente y un resto. En la division puede ocurrir desbordamiento. El procesador genera una interrupcion si se produce un desbordamiento.
Igual DIV -> sin firma o signo, IDIV-> datos con signo.
SINTAXIS
El dividendo esta en un acomulador. Ambas instrucciones pueden funcionar el operandos de 8 bits, 16 bits o 32 bits. La operacion afecta a los seis indicadores de estado.
Vemamos tres casos de division con diferentes tamaños:
Sr.No.
Escenarios
1
Cuando el divisor es 1 byte −
Se supone que el dividendo está en el registro AX (16 bits). Después de la división, el cociente pasa al registro AL y el resto al registro AH.
2
Cuando el divisor es 1 palabra −
Se supone que el dividendo tiene una longitud de 32 bits y está en los registros DX:AX. Los 16 bits de orden superior están en DX y los 16 bits de orden inferior están en AX. Después de la división, el cociente de 16 bits va al registro AX y el resto de 16 bits al registro DX.
3
Cuando el divisor es palabra doble −
Se supone que el dividendo tiene una longitud de 64 bits y está en los registros EDX:EAX. Los 32 bits de orden superior están en EDX y los 32 bits de orden inferior están en EAX. Después de la división, el cociente de 32 bits pasa al registro EAX y el resto de 32 bits pasa al registro EDX.
EJEMPLO:
Divide 8 entre 2. El dividendo 8 se almacena ene l registro AX de 16 bits y el divisor se almacena en el registro bBL de 8 bits.
Última actualización