2-10 Vol. 2A
INSTRUCTION FORMAT
In the IA-32 architecture, byte registers (AH, AL, BH, BL, CH, CL, DH, and DL) are encoded in the ModR/M byte’s
reg field, the r/m field or the opcode reg field as registers 0 through 7. REX prefixes provide an additional
addressing capability for byte-registers that makes the least-significant byte of GPRs available for byte operations.
Certain combinations of the fields of the ModR/M byte and the SIB byte have special meaning for register encod-
ings. For some combinations, fields expanded by the REX prefix are not decoded. Table 2-5 describes how each
case behaves.
Figure 2-6. Memory Addressing With a SIB Byte
Figure 2-7. Register Operand Coded in Opcode Byte; REX.X & REX.R Not Used
mod
≠ 11
ModRM Byte
r/m
100
reg
rrr
scale
ss
SIB Byte
REX PREFIX
0100WRXB
Opcode
Rrrr
base
Bbbb
bbb
Xxxx
index
xxx
OM17Xfig1-5
REX PREFIX
0100W00B
Opcode
Bbbb
reg
bbb
OM17Xfig1-6