CC-BY-SA • PID_00178132
98
Si el divisor es de 32 bits, el funcionamiento es similar al caso anterior, pero se utiliza el par de registros EDX:EAX; la parte menos significativa del dividendo se coloca en EAX y la parte más significativa, en EDX. El cociente de la división queda en EAX y el resto, en EDX. Si el divisor es de 64 bits, el funcionamiento es parecido a los dos casos anteriores, pero se utiliza el par de registros RDX:RAX; la parte menos significativa del dividendo se coloca en RAX y la parte más significativa, en RDX. El cociente de la división queda en RAX y el resto, en RDX.
Operación Si fuente es de 8 bits: AL = AX / fuente, AH = AX mod fuente Si fuente es de 16 bits: AX = DX:AX / fuente, DX = DX:AX mod fuente Si fuente es de 32 bits: EAX = EDX:EAX / fuente, EDX = EDX:EAX mod fuente Si fuente es de 64 bits: RAX = RDX:RAX / fuente, RDX = RDX:RAX mod fuente
Bits�de�resultado�modificados OF, SF, ZF, AF, PF, CF La instrucción DIV no deja información a los bits de resultado, pero estos quedan indefinidos. Formatos�válidos DIV reg
DIV tamaño mem Ejemplos DIV R8B ; AX / R8B => Cociente en AL; resto en AH DIV R8W ; DX:AX / R8W => Cociente en AX; resto en DX DIV ECX ; EDX:EAX / ECX => Cociente en EAX; resto en EDX DIV QWORD [R9] ; RDX:RAX / QWORD [R9] => Cociente en RAX, resto en RDX
6.8. IDIV: división entera con signo
IDIV fuente
Programación en ensamblador (x86-64)