background image

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