Instrucciones Aritmeticas en Ensamblador
Instrucciones Aritmeticas en Ensamblador
Instrucciones Aritmeticas en Ensamblador
Suma y resta
Los microprocesadores Intel 80x86 disponen de las instrucciones add y sub para realizar sumas y
restas respectivamente, estas instrucciones pueden trabajar sobre operandos de longitud byte (8bits),
word (16bits), double-word (32bits) y quad-word (64bits). Los operandos pueden ser números con
signo o sin signo, en caso de ser números con signo éstos son almacenados en su forma de
complemento a 2. Se debe observar que estas instrucciones realizan cambios en los bits del registro
de banderas, algunas banderas modificadas según el resultado de la operación son las banderas SF,
ZF, OF, CF, PF y DF.
cuando esta instrucción es ejecutada el valor que se encuentra en fuente es sumado al valor que se
encuentra en destino, sobrescribiendo el valor que originalmente se encontraba en destino por el
nuevo valor resultado de la adición.
cuando esta instrucción es ejecutada el valor que se encuentra en fuente es restado del valor que se
encuentra en destino, sobrescribiendo el valor que originalmente se encontraba en destino por el
nuevo valor resultado de la sustracción.
Debe observar que tanto para la suma como para la resta el valor de destino es cambiado por el
valor resultado de la operación, a diferencia del valor de fuente que permanece inalterado.
AX: 33 11 AX: 44 11
BX: 11 00 add ax, bx BX: 11 00
ECX: 00 00 0C 0A ECX: 00 00 34 AC
EAX: 00 00 28 A2 add ecx, eax EAX: 00 00 28 A2
ECX: 01 00 FF 0E ECX: F2 36 21 B9
EDX: F1 35 22 AB add ecx, edx EDX: F1 35 22 AB
AL: 54 AL: 22
BL: 32 sub al, bl BL: 32
1
Lenguaje Ensamblador - Instrucciones aritméticas en ensamblador
CH: FA CH: 58
AL: A2 sub ch, al AL: A2
CX: DE 5B CX: 23 17
DX: BB 44 sub cx, dx DX: BB 44
Las instrucciones inc (increment) y dec (decrement) representan una suma y una resta donde el
operando fuente siempre es 1, la forma de cada una de ellas es la siguiente:
inc destino
dec destino
La instrucción neg
neg destino
2
Lenguaje Ensamblador - Instrucciones aritméticas en ensamblador
Al inicio de este documento se indicó que los números con signo son almacenados internamente en
las computadoras en su forma de complemento a 2, esto se hace así ya que es mucho más sencillo
tratar a los números negativos en su forma de complemento a 2, así mismo, también se señaló que la
instrucción neg de ensamblador obtiene el complemento a 2 de su operando.
2n – N
3
Lenguaje Ensamblador - Instrucciones aritméticas en ensamblador
Ejemplos de complemento a 2:
Solución
Al observar los datos proporcionados vemos que n es igual a 8 y N es igual a 0101 0011,
sustituyendo en la fórmula tenemos
2n – N = (28)10 – (0101 0011)2 = (256)10 – (0101 0011)2 = (1 0000 0000)2 – (0101 0011)2 = (1010 1101)2
Solución
Una forma más sencilla de encontrar el complemento a 2 de un número binario es dejando todos los
ceros menos significativos y el primer dígito diferente de cero sin cambio, para luego remplazar unos
por ceros y ceros por unos en el resto de dígitos más significativos.
Solución
Siguiendo el método anterior encontramos que 0000 1100 1111 0110 es el complemento a 2
buscado.
Solución