Las instrucciones DIV e IDIV se usan para realizar divisiones en ensamblador, donde DIV maneja datos sin signo y IDIV maneja datos con signo. La instrucción NEG invierte el signo de un número binario de positivo a negativo o viceversa cambiando los bits y sumando uno.
2. Para la división la instrucción DIV (dividir) maneja datos
sin signo y la instrucción IDIV(división entera maneja datos
con signo.
Formato:
[Etiqueta:] Div | IDiv [Registro | Memoria]
División
3. Aquí el dividendo está en el registro AX y el divisor es un
byte en memoria o en otro registro. Después de la división,
el residuo esta en la parte alta del registro AX (AH) y el
cociente esta en la parte baja del registro AX (AL). Ya que
un cociente de un byte es muy pequeño;
• Si es sin signo: Máximo de +255 (FFH).
• Si es con signo: Máximo de +127 (7FH).
Esta operación tiene un uso limitado
AX
AH
Residuo
Palabra Entre Byte
AL
Cociente
Antes de la operación-----
Después de la operación--
4. ;Declaración de variables DIV
Byte1 DB 80h; 128 en decimal
Word1 DW 2000h ; 8192 en decimal
------------------------------------------
;Instrucciones
MOV AX, word1
DIV Byte1
Antes de la división
AX
AH
20
AL
00
Después de la división
AX
AH
(Residuo)
00
AL
(cociente)
40
;el resultado de 8192/128 = 64 (40h)
5. ;Declaración de variables IDIV
Byte1 DB 80h; 128 en decimal
Word1 DW 2000h ; 8192 en decimal
------------------------------------------
;Instrucciones
MOV AX, word1
IDIV Byte1
Antes de la división
AX
AH
20
AL
00
Después de la división
AX
AH
(Residuo)
00
AL
(cociente)
C0
;el resultado de 8192/-128 = -64 (C0h)
6. La operación NEG (negar invierte el signo de un numero
binario, de positivo a negativo y viceversa. En realidad,
NEG invierte los bits, igual que NOT, y después suma uno
para una correcta notación en complemento a dos. El
formato para NEG es:
[Etiqueta:] NEG [Registro | Memoria]
Cambio (Inversión) del signo
7. NEG
;Negación Positivo A Negativo Y Viceversa
MOV AL,3; negado es FD hex
NEG AL
MOV AL,-3
NEG AL
Positivo a Negativo
AX
Antes Después
AL
03
AL
FD
Negativo a Positivo
AX
Antes Después
AL
FD
AL
03
Notas del editor
Cuando se hacen divisiones de byte entre byte se asigna 0 a la parte alta de AX para evitar que tome otros valores utilizados en ejecución