Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
1143 Discussions

IDIV pseudocode errors (typos + missing THEN) — SDM Vol. 2A, p. 3-449 (Doc 325462-091)

Vcccc
Beginner
80 Views

In the IDIV instruction "Operation" pseudocode (Vol. 2A, page 3-449, document 325462 rev. 091), the 32-bit and 64-bit branches contain errors. I
confirmed these by viewing the rendered PDF (not copy-paste artifacts).

1. Typo in the 32-bit remainder assignment
Printed: EDX := EDXE:AX SignedModulus SRC;
Should be: EDX := EDX:EAX SignedModulus SRC;

2. Typo in the 64-bit remainder assignment
Printed: RDX := RDE:RAX SignedModulus SRC;
Should be: RDX := RDX:RAX SignedModulus SRC;

3. Missing THEN keyword in two branches
The OperandSize = 8 and OperandSize = 16 branches are written as:
ELSE IF OperandSize = N ...
THEN
temp := ...
However, the OperandSize = 32 and OperandSize = 64 branches omit the THEN
keyword — the condition line is followed directly by "temp := EDX:EAX / SRC;"
and "temp := RDX:RAX / SRC;", breaking the IF/THEN structure used by the
other two branches.

Evidence for the correct register pairs (EDX:EAX, RDX:RAX): the "temp := ... / SRC;"
lines immediately above each assignment, Table 3-53 (Dividend column), the
Description paragraph, and the consistent 8-/16-bit cases
("AH := AX SignedModulus SRC;", "DX := DX:AX SignedModulus SRC;").

0 Kudos
1 Reply
AdyT_Intel
Moderator
30 Views

Thanks for reporting. It will be fixed in the next SDM.

 

0 Kudos
Reply