x86 architecture
mod R/M byte




   
r8(/r) without REX
r8(/r) with REX

r16(/r)
r32(/r)
r64(/r)
mm(/r)
sreg
eee
eee
REX2
EVEX
R'=0
REX
R=0
AL
AL
AX
EAX
RAX
MM0
ES
CR0
DR0
CL
CL
CX
ECX
RCX
MM1
CS
CR1
DR1
DL
DL
DX
EDX
RDX
MM2
SS
CR2
DR2
BL
BL
BX
EBX
RBX
MM3
DS
CR3
DR3
AH
SPL
SP
ESP
RSP
MM4
FS
CR4
DR4
CH
BPL
BP
EBP
RBP
MM5
GS
CR5
DR5
DH
SIL
SI
ESI
RSI
MM6
res.
CR6
DR6
BH
DIL
DI
EDI
RDI
MM7
res.
CR7
DR7
r8(/r)
r16(/r)
r32(/r)
r64(/r)
eee
eee
REX
R=1
R8B
R8W
R8D
R8
CR8
DR8
R9B
R9W
R9D
R9
CR9
DR9
R10B
R10W
R10D
R10
CR10
DR10
R11B
R11W
R11D
R11
CR11
DR11
R12B
R12W
R12D
R12
CR12
DR12
R13B
R13W
R13D
R13
CR13
DR13
R14B
R14W
R14D
R14
CR14
DR14
R15B
R15W
R15D
R15
CR15
DR15
r8(/r)
r16(/r)
r32(/r)
r64(/r)
eee
eee
REX2
EVEX
R'=1
REX2
EVEX
R=0
R16B
R16W
R16D
R16
CR16
DR16
R17B
R17W
R17D
R17
CR17
DR17
R18B
R18W
R18D
R18
CR18
DR18
R19B
R19W
R19D
R19
CR19
DR19
R20B
R20W
R20D
R20
CR20
DR20
R21B
R21W
R21D
R21
CR21
DR21
R22B
R22W
R22D
R22
CR22
DR22
R23B
R23W
R23D
R23
CR23
DR23
r8(/r)
r16(/r)
r32(/r)
r64(/r)
eee
eee
REX2
EVEX
R=1
R24B
R24W
R24D
R24
CR24
DR24
R25B
R25W
R25D
R25
CR25
DR25
R26B
R26W
R26D
R26
CR26
DR26
R27B
R27W
R27D
R27
CR27
DR27
R28B
R28W
R28D
R28
CR28
DR28
R29B
R29W
R29D
R29
CR29
DR29
R30B
R30W
R30D
R30
CR30
DR30
R31B
R31W
R31D
R31
CR31
DR31
xmm(/r)
ymm(/r)
zmm(/r)
MVEX
EVEX
R'=0
REX
R=0
XMM0
YMM0
ZMM0
XMM1
YMM1
ZMM1
XMM2
YMM2
ZMM2
XMM3
YMM3
ZMM3
XMM4
YMM4
ZMM4
XMM5
YMM5
ZMM5
XMM6
YMM6
ZMM6
XMM7
YMM7
ZMM7
xmm(/r)
ymm(/r)
zmm(/r)
REX
R=1
XMM8
YMM8
ZMM8
XMM9
YMM9
ZMM9
XMM10
YMM10
ZMM10
XMM11
YMM11
ZMM11
XMM12
YMM12
ZMM12
XMM13
YMM13
ZMM13
XMM14
YMM14
ZMM14
XMM15
YMM15
ZMM15
xmm(/r)
ymm(/r)
zmm(/r)
MVEX
EVEX
R'=1
MVEX
EVEX
R=0
XMM16
YMM16
ZMM16
XMM17
YMM17
ZMM17
XMM18
YMM18
ZMM18
XMM19
YMM19
ZMM19
XMM20
YMM20
ZMM20
XMM21
YMM21
ZMM21
XMM22
YMM22
ZMM22
XMM23
YMM23
ZMM23
xmm(/r)
ymm(/r)
zmm(/r)
MVEX
EVEX
R=1
XMM24
YMM24
ZMM24
XMM25
YMM25
ZMM25
XMM26
YMM26
ZMM26
XMM27
YMM27
ZMM27
XMM28
YMM28
ZMM28
XMM29
YMM29
ZMM29
XMM30
YMM30
ZMM30
XMM31
YMM31
ZMM31
/digit (opcode)
reg=
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111
 
effective address
 
mod R/M value of mod R/M byte (hex)
traditional  
vector
 
REX2/EVEX.B'=0 REX2/EVEX.B'=1 MVEX/EVEX.X=0 (not B') MVEX/EVEX.X=1 (not B')
REX.B=0 REX.B=1 REX2/EVEX.B=0 REX2/EVEX.B=1 REX.B=0 REX.B=1 MVEX/EVEX.B=0 MVEX/EVEX.B=1
 [rAX]
 [rCX]
 [rDX]
 [rBX]
 [sib]
 [*] #1
 [rSI]
 [rDI]
  [r8]
  [r9]
[r10]
[r11]
[sib]
[*] #1
[r14]
[r15]
[r16]
[r17]
[r18]
[r19]
[sib]
[*] #1
[r22]
[r23]
[r24]
[r25]
[r26]
[r27]
[sib]
[*] #1
[r30]
[r31]
        00
 
 
 
 
 
 
 
000
001
010
011
100
101
110
111
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
 [rAX+sbyte]#2
 [rCX+sbyte]
 [rDX+sbyte]
 [rBX+sbyte]
 [sib+sbyte]
 [rBP+sbyte] (defaults to SS)
 [rSI+sbyte]
 [rDI+sbyte]
  [r8+sbyte]
  [r9+sbyte]
[r10+sbyte]
[r11+sbyte]
[sib+sbyte]
[r13+sbyte]
[r14+sbyte]
[r15+sbyte]
[r16+sbyte]
[r17+sbyte]
[r18+sbyte]
[r19+sbyte]
[sib+sbyte]
[r21+sbyte]
[r22+sbyte]
[r23+sbyte]
[r24+sbyte]
[r25+sbyte]
[r26+sbyte]
[r27+sbyte]
[sib+sbyte]
[r29+sbyte]
[r30+sbyte]
[r31+sbyte]
        01
 
 
 
 
 
 
 
000
001
010
011
100
101
110
111
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
 [rAX+sdword]
 [rCX+sdword]
 [rDX+sdword]
 [rBX+sdword]
 [sib+sdword]
 [rBP+sdword] (defaults to SS)
 [rSI+sdword]
 [rDI+sdword]
  [r8+sdword]
  [r9+sdword]
[r10+sdword]
[r11+sdword]
[sib+sdword]
[r13+sdword]
[r14+sdword]
[r15+sdword]
[r16+sdword]
[r17+sdword]
[r18+sdword]
[r19+sdword]
[sib+sdword]
[r21+sdword]
[r22+sdword]
[r23+sdword]
[r24+sdword]
[r25+sdword]
[r26+sdword]
[r27+sdword]
[sib+sdword]
[r29+sdword]
[r30+sdword]
[r31+sdword]
        10
 
 
 
 
 
 
 
000
001
010
011
100
101
110
111
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
AL/rAX or MM0 
CL/rCX or MM1 
DL/rDX or MM2 
BL/rBX or MM3 
AH/SPL/rSP or MM4 
CH/BPL/rBP or MM5 
DH/SIL/rSI or MM6 
BH/DIL/rDI or MM7 
  R8{B,W,D,Q}
  R9{B,W,D,Q}
R10{B,W,D,Q}
R11{B,W,D,Q}
R12{B,W,D,Q}
R13{B,W,D,Q}
R14{B,W,D,Q}
R15{B,W,D,Q}
R16{B,W,D,Q}
R17{B,W,D,Q}
R18{B,W,D,Q}
R19{B,W,D,Q}
R20{B,W,D,Q}
R21{B,W,D,Q}
R22{B,W,D,Q}
R23{B,W,D,Q}
R24{B,W,D,Q}
R25{B,W,D,Q}
R26{B,W,D,Q}
R27{B,W,D,Q}
R28{B,W,D,Q}
R29{B,W,D,Q}
R30{B,W,D,Q}
R31{B,W,D,Q}
{X,Y,Z}MM0
{X,Y,Z}MM1
{X,Y,Z}MM2
{X,Y,Z}MM3
{X,Y,Z}MM4
{X,Y,Z}MM5
{X,Y,Z}MM6
{X,Y,Z}MM7
{X,Y,Z}MM8  
{X,Y,Z}MM9  
{X,Y,Z}MM10
{X,Y,Z}MM11
{X,Y,Z}MM12
{X,Y,Z}MM13
{X,Y,Z}MM14
{X,Y,Z}MM15
{X,Y,Z}MM16
{X,Y,Z}MM17
{X,Y,Z}MM18
{X,Y,Z}MM19
{X,Y,Z}MM20
{X,Y,Z}MM21
{X,Y,Z}MM22
{X,Y,Z}MM23
{X,Y,Z}MM24
{X,Y,Z}MM25
{X,Y,Z}MM26
{X,Y,Z}MM27
{X,Y,Z}MM28
{X,Y,Z}MM29
{X,Y,Z}MM30
{X,Y,Z}MM31
11
 
 
 
 
 
 
 
000
001
010
011
100
101
110
111
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
note description
#1 if PM64 and adsize=64, then effective address = [RIP+sdword]
if PM64 and adsize=32, then effective address = [EIP+sdword]
else effective address = [sdword]
#2 if MVEX/EVEX, then sbyte is interpreted as sbyte*N



main page

© 1996-2024 by Christian Ludloff. All rights reserved. Use at your own risk.