IDIV—Signed DivideInstruction Operand EncodingDescriptionDivides the (signed) value in the AX, DX:AX, or EDX:EAX (dividend) by the source operand (divisor) and stores the result in the AX (AH:AL), DX:AX, or EDX:EAX registers. 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).Non-integral results are truncated (chopped) towards 0. The remainder is always less than the divisor in magni-tude. Overflow is indicated with the #DE (divide error) exception rather than with the CF flag.In 64-bit mode, the instruction’s default operation size is 32 bits. Use of the REX.R prefix permits access to addi-tional registers (R8-R15). Use of the REX.W prefix promotes operation to 64 bits. In 64-bit mode when REX.W is applied, the instruction divides the signed value in RDX:RAX by the source operand. RAX contains a 64-bit quotient; RDX contains a 64-bit remainder. See the summary chart at the beginning of this section for encoding data and limits. See Table 3-51.OpcodeInstructionOp/ En64-Bit ModeCompat/Leg ModeDescriptionF6 /7IDIV r/m8MValidValidSigned divide AX by r/m8, with result stored in: AL:= Quotient, AH:= Remainder.REX + F6 /7IDIV r/m8*MValidN.E.Signed divide AX by r/m8, with result stored in AL:= Quotient, AH:= Remainder.F7 /7IDIV r/m16MValidValidSigned divide DX:AX by r/m16, with result stored in AX:= Quotient, DX:= Remainder.F7 /7IDIV r/m32MValidValidSigned divide EDX:EAX by r/m32, with result stored in EAX:= Quotient, EDX:= Remainder.REX.W + F7 /7IDIV r/m64MValidN.E.Signed divide RDX:RAX by r/m64, with result stored in RAX:= Quotient, RDX:= Remainder.NOTES:*In 64-bit mode, r/m8 can not be encoded to access the following byte registers if a REX prefix is used: AH, BH, CH, DH. Op/EnOperand 1Operand 2Operand 3Operand 4MModRM:r/m (r)NANANATable 3-51. IDIV ResultsOperand SizeDividendDivisorQuotientRemainderQuotient RangeWord/byteAXr/m8ALAH−128 to +127Doubleword/wordDX:AXr/m16AXDX−32,768 to +32,767Quadword/doublewordEDX:EAXr/m32EAXEDX−231 to 231 − 1Doublequadword/ quadwordRDX:RAXr/m64RAXRDX−263 to 263 − 1
This UNOFFICIAL reference was generated from the official Intel® 64 and IA-32 Architectures Software Developer’s Manual by a dumb script. There is no guarantee that some parts aren't mangled or broken and is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.