Divides (unsigned) the value in the AX, DX:AX, or EDX:EAX registers (dividend) by the source operand (divisor) and stores the result in the AX (AH:AL), DX:AX, or EDX:EAX registers.
DIV Action
Operand Size | Dividend | Divisor | Quotient | Remainder | Maximum Quotient |
Word/byte | AX | r/m8 | AL | AH | 2^8 - 1 |
Doubleword/word | DX:AX | r/m16 | AX | DX | 2^16 - 1 |
Quadword/doubleword | EDX:EAX | r/m32 | EAX | EDX | 2^32 - 1 |
The source operand can be a general-purpose register or a memory location. The action of this instruction depends on the operand size (dividend/divisor). See the table above.
Non-integral results are truncated (chopped) towards 0. The remainder is always less than the divisor in magnitude. Overflow is indicated with the #DE (divide error) exception rather than with the CF flag.
|