Все коды байта MRM (16 бит)
Все коды байта MRM для режима 32 бит
|
Код | mod reg r/m |
Опер 1 (reg) |
Операнд 2 (mod + r/m) |
|
00 |
00 - 000 - 000 |
EAX |
DS: [EAX] |
01 |
00 - 000 - 001 |
EAX |
DS: [ECX] |
02 |
00 - 000 - 010 |
EAX |
DS: [EDX] |
03 |
00 - 000 - 011 |
EAX |
DS: [EBX] |
04 |
00 - 000 - 100 |
EAX |
Используется SIB |
05 |
00 - 000 - 101 |
EAX |
DS: disp32 |
06 |
00 - 000 - 110 |
EAX |
DS: [ESI] |
07 |
00 - 000 - 111 |
EAX |
DS: [EDI] |
|
08 |
00 - 001 - 000 |
ECX |
DS: [EAX] |
09 |
00 - 001 - 001 |
ECX |
DS: [ECX] |
0A |
00 - 001 - 010 |
ECX |
DS: [EDX] |
0B |
00 - 001 - 011 |
ECX |
DS: [EBX] |
0C |
00 - 001 - 100 |
ECX |
Используется SIB |
0D |
00 - 001 - 101 |
ECX |
DS: disp32 |
0E |
00 - 001 - 110 |
ECX |
DS: [ESI] |
0F |
00 - 001 - 111 |
ECX |
DS: [EDI] |
|
10 |
00 - 010 - 000 |
EDX |
DS: [EAX] |
11 |
00 - 010 - 001 |
EDX |
DS: [ECX] |
12 |
00 - 010 - 010 |
EDX |
DS: [EDX] |
13 |
00 - 010 - 011 |
EDX |
DS: [EBX] |
14 |
00 - 010 - 100 |
EDX |
Используется SIB |
15 |
00 - 010 - 101 |
EDX |
DS: disp32 |
16 |
00 - 010 - 110 |
EDX |
DS: [ESI] |
17 |
00 - 010 - 111 |
EDX |
DS: [EDI] |
|
18 |
00 - 011 - 000 |
EBX |
DS: [EAX] |
19 |
00 - 011 - 001 |
EBX |
DS: [ECX] |
1A |
00 - 011 - 010 |
EBX |
DS: [EDX] |
1B |
00 - 011 - 011 |
EBX |
DS: [EBX] |
1C |
00 - 011 - 100 |
EBX |
Используется SIB |
1D |
00 - 011 - 101 |
EBX |
DS: disp32 |
1E |
00 - 011 - 110 |
EBX |
DS: [ESI] |
1F |
00 - 011 - 111 |
EBX |
DS: [EDI] |
|
20 |
00 - 100 - 000 |
ESP |
DS: [EAX] |
21 |
00 - 100 - 001 |
ESP |
DS: [ECX] |
22 |
00 - 100 - 010 |
ESP |
DS: [EDX] |
23 |
00 - 100 - 011 |
ESP |
DS: [EBX] |
24 |
00 - 100 - 100 |
ESP |
Используется SIB |
25 |
00 - 100 - 101 |
ESP |
DS: disp32 |
26 |
00 - 100 - 110 |
ESP |
DS: [ESI] |
27 |
00 - 100 - 111 |
ESP |
DS: [EDI] |
|
28 |
00 - 101 - 000 |
EBP |
DS: [EAX] |
29 |
00 - 101 - 001 |
EBP |
DS: [ECX] |
2A |
00 - 101 - 010 |
EBP |
DS: [EDX] |
2B |
00 - 101 - 011 |
EBP |
DS: [EBX] |
2C |
00 - 101 - 100 |
EBP |
Используется SIB |
2D |
00 - 101 - 101 |
EBP |
DS: disp32 |
2E |
00 - 101 - 110 |
EBP |
DS: [ESI] |
2F |
00 - 101 - 111 |
EBP |
DS: [EDI] |
|
30 |
00 - 110 - 000 |
ESI |
DS: [EAX] |
31 |
00 - 110 - 001 |
ESI |
DS: [ECX] |
32 |
00 - 110 - 010 |
ESI |
DS: [EDX] |
33 |
00 - 110 - 011 |
ESI |
DS: [EBX] |
34 |
00 - 110 - 100 |
ESI |
Используется SIB |
35 |
00 - 110 - 101 |
ESI |
DS: disp32 |
36 |
00 - 110 - 110 |
ESI |
DS: [ESI] |
37 |
00 - 110 - 111 |
ESI |
DS: [EDI] |
|
38 |
00 - 111 - 000 |
EDI |
DS: [EAX] |
39 |
00 - 111 - 001 |
EDI |
DS: [ECX] |
3A |
00 - 111 - 010 |
EDI |
DS: [EDX] |
3B |
00 - 111 - 011 |
EDI |
DS: [EBX] |
3C |
00 - 111 - 100 |
EDI |
Используется SIB |
3D |
00 - 111 - 101 |
EDI |
DS: disp32 |
3E |
00 - 111 - 110 |
EDI |
DS: [ESI] |
3F |
00 - 111 - 111 |
EDI |
DS: [EDI] |
|
40 |
01 - 000 - 000 |
EAX |
DS: [EAX] + disp8 |
41 |
01 - 000 - 001 |
EAX |
DS: [ECX] + disp8 |
42 |
01 - 000 - 010 |
EAX |
DS: [EDX] + disp8 |
43 |
01 - 000 - 011 |
EAX |
DS: [EBX] + disp8 |
44 |
01 - 000 - 100 |
EAX |
Используется SIB |
45 |
01 - 000 - 101 |
EAX |
SS: [EBP] + disp8 |
46 |
01 - 000 - 110 |
EAX |
DS: [ESI] + disp8 |
47 |
01 - 000 - 111 |
EAX |
DS: [EDI] + disp8 |
|
48 |
01 - 001 - 000 |
ECX |
DS: [EAX] + disp8 |
49 |
01 - 001 - 001 |
ECX |
DS: [ECX] + disp8 |
4A |
01 - 001 - 010 |
ECX |
DS: [EDX] + disp8 |
4B |
01 - 001 - 011 |
ECX |
DS: [EBX] + disp8 |
4C |
01 - 001 - 100 |
ECX |
Используется SIB |
4D |
01 - 001 - 101 |
ECX |
SS: [EBP] + disp8 |
4E |
01 - 001 - 110 |
ECX |
DS: [ESI] + disp8 |
4F |
01 - 001 - 111 |
ECX |
DS: [EDI] + disp8 |
|
50 |
01 - 010 - 000 |
EDX |
DS: [EAX] + disp8 |
51 |
01 - 010 - 001 |
EDX |
DS: [ECX] + disp8 |
52 |
01 - 010 - 010 |
EDX |
DS: [EDX] + disp8 |
53 |
01 - 010 - 011 |
EDX |
DS: [EBX] + disp8 |
54 |
01 - 010 - 100 |
EDX |
Используется SIB |
55 |
01 - 010 - 101 |
EDX |
SS: [EBP] + disp8 |
56 |
01 - 010 - 110 |
EDX |
DS: [ESI] + disp8 |
57 |
01 - 010 - 111 |
EDX |
DS: [EDI] + disp8 |
|
58 |
01 - 011 - 000 |
EBX |
DS: [EAX] + disp8 |
59 |
01 - 011 - 001 |
EBX |
DS: [ECX] + disp8 |
5A |
01 - 011 - 010 |
EBX |
DS: [EDX] + disp8 |
5B |
01 - 011 - 011 |
EBX |
DS: [EBX] + disp8 |
5C |
01 - 011 - 100 |
EBX |
Используется SIB |
5D |
01 - 011 - 101 |
EBX |
SS: [EBP] + disp8 |
5E |
01 - 011 - 110 |
EBX |
DS: [ESI] + disp8 |
5F |
01 - 011 - 111 |
EBX |
DS: [EDI] + disp8 |
|
60 |
01 - 100 - 000 |
ESP |
DS: [EAX] + disp8 |
61 |
01 - 100 - 001 |
ESP |
DS: [ECX] + disp8 |
62 |
01 - 100 - 010 |
ESP |
DS: [EDX] + disp8 |
63 |
01 - 100 - 011 |
ESP |
DS: [EBX] + disp8 |
64 |
01 - 100 - 100 |
ESP |
Используется SIB |
65 |
01 - 100 - 101 |
ESP |
SS: [EBP] + disp8 |
66 |
01 - 100 - 110 |
ESP |
DS: [ESI] + disp8 |
67 |
01 - 100 - 111 |
ESP |
DS: [EDI] + disp8 |
|
68 |
01 - 101 - 000 |
EBP |
DS: [EAX] + disp8 |
69 |
01 - 101 - 001 |
EBP |
DS: [ECX] + disp8 |
6A |
01 - 101 - 010 |
EBP |
DS: [EDX] + disp8 |
6B |
01 - 101 - 011 |
EBP |
DS: [EBX] + disp8 |
6C |
01 - 101 - 100 |
EBP |
Используется SIB |
6D |
01 - 101 - 101 |
EBP |
SS: [EBP] + disp8 |
6E |
01 - 101 - 110 |
EBP |
DS: [ESI] + disp8 |
6F |
01 - 101 - 111 |
EBP |
DS: [EDI] + disp8 |
|
70 |
01 - 110 - 000 |
ESI |
DS: [EAX] + disp8 |
71 |
01 - 110 - 001 |
ESI |
DS: [ECX] + disp8 |
72 |
01 - 110 - 010 |
ESI |
DS: [EDX] + disp8 |
73 |
01 - 110 - 011 |
ESI |
DS: [EBX] + disp8 |
74 |
01 - 110 - 100 |
ESI |
Используется SIB |
75 |
01 - 110 - 101 |
ESI |
SS: [EBP] + disp8 |
76 |
01 - 110 - 110 |
ESI |
DS: [ESI] + disp8 |
77 |
01 - 110 - 111 |
ESI |
DS: [EDI] + disp8 |
|
78 |
01 - 111 - 000 |
EDI |
DS: [EAX] + disp8 |
79 |
01 - 111 - 001 |
EDI |
DS: [ECX] + disp8 |
7A |
01 - 111 - 010 |
EDI |
DS: [EDX] + disp8 |
7B |
01 - 111 - 011 |
EDI |
DS: [EBX] + disp8 |
7C |
01 - 111 - 100 |
EDI |
Используется SIB |
7D |
01 - 111 - 101 |
EDI |
SS: [EBP] + disp8 |
7E |
01 - 111 - 110 |
EDI |
DS: [ESI] + disp8 |
7F |
01 - 111 - 111 |
EDI |
DS: [EDI] + disp8 |
|
80 |
10 - 000 - 000 |
EAX |
DS: [EAX] + disp32 |
81 |
10 - 000 - 001 |
EAX |
DS: [ECX] + disp32 |
82 |
10 - 000 - 010 |
EAX |
DS: [EDX] + disp32 |
83 |
10 - 000 - 011 |
EAX |
DS: [EBX] + disp32 |
84 |
10 - 000 - 100 |
EAX |
Используется SIB |
85 |
10 - 000 - 101 |
EAX |
SS: [EBP] + disp32 |
86 |
10 - 000 - 110 |
EAX |
DS: [ESI] + disp32 |
87 |
10 - 000 - 111 |
EAX |
DS: [EDI] + disp32 |
|
88 |
10 - 001 - 000 |
ECX |
DS: [EAX] + disp32 |
89 |
10 - 001 - 001 |
ECX |
DS: [ECX] + disp32 |
8A |
10 - 001 - 010 |
ECX |
DS: [EDX] + disp32 |
8B |
10 - 001 - 011 |
ECX |
DS: [EBX] + disp32 |
8C |
10 - 001 - 100 |
ECX |
Используется SIB |
8D |
10 - 001 - 101 |
ECX |
SS: [EBP] + disp32 |
8E |
10 - 001 - 110 |
ECX |
DS: [ESI] + disp32 |
8F |
10 - 001 - 111 |
ECX |
DS: [EDI] + disp32 |
|
90 |
10 - 010 - 000 |
EDX |
DS: [EAX] + disp32 |
91 |
10 - 010 - 001 |
EDX |
DS: [ECX] + disp32 |
92 |
10 - 010 - 010 |
EDX |
DS: [EDX] + disp32 |
93 |
10 - 010 - 011 |
EDX |
DS: [EBX] + disp32 |
94 |
10 - 010 - 100 |
EDX |
Используется SIB |
95 |
10 - 010 - 101 |
EDX |
SS: [EBP] + disp32 |
96 |
10 - 010 - 110 |
EDX |
DS: [ESI] + disp32 |
97 |
10 - 010 - 111 |
EDX |
DS: [EDI] + disp32 |
|
98 |
10 - 011 - 000 |
EBX |
DS: [EAX] + disp32 |
99 |
10 - 011 - 001 |
EBX |
DS: [ECX] + disp32 |
9A |
10 - 011 - 010 |
EBX |
DS: [EDX] + disp32 |
9B |
10 - 011 - 011 |
EBX |
DS: [EBX] + disp32 |
9C |
10 - 011 - 100 |
EBX |
Используется SIB |
9D |
10 - 011 - 101 |
EBX |
SS: [EBP] + disp32 |
9E |
10 - 011 - 110 |
EBX |
DS: [ESI] + disp32 |
9F |
10 - 011 - 111 |
EBX |
DS: [EDI] + disp32 |
|
A0 |
10 - 100 - 000 |
ESP |
DS: [EAX] + disp32 |
A1 |
10 - 100 - 001 |
ESP |
DS: [ECX] + disp32 |
A2 |
10 - 100 - 010 |
ESP |
DS: [EDX] + disp32 |
A3 |
10 - 100 - 011 |
ESP |
DS: [EBX] + disp32 |
A4 |
10 - 100 - 100 |
ESP |
Используется SIB |
A5 |
10 - 100 - 101 |
ESP |
SS: [EBP] + disp32 |
A6 |
10 - 100 - 110 |
ESP |
DS: [ESI] + disp32 |
A7 |
10 - 100 - 111 |
ESP |
DS: [EDI] + disp32 |
|
A8 |
10 - 101 - 000 |
EBP |
DS: [EAX] + disp32 |
A9 |
10 - 101 - 001 |
EBP |
DS: [ECX] + disp32 |
AA |
10 - 101 - 010 |
EBP |
DS: [EDX] + disp32 |
AB |
10 - 101 - 011 |
EBP |
DS: [EBX] + disp32 |
AC |
10 - 101 - 100 |
EBP |
Используется SIB |
AD |
10 - 101 - 101 |
EBP |
SS: [EBP] + disp32 |
AE |
10 - 101 - 110 |
EBP |
DS: [ESI] + disp32 |
AF |
10 - 101 - 111 |
EBP |
DS: [EDI] + disp32 |
|
B0 |
10 - 110 - 000 |
ESI |
DS: [EAX] + disp32 |
B1 |
10 - 110 - 001 |
ESI |
DS: [ECX] + disp32 |
B2 |
10 - 110 - 010 |
ESI |
DS: [EDX] + disp32 |
B3 |
10 - 110 - 011 |
ESI |
DS: [EBX] + disp32 |
B4 |
10 - 110 - 100 |
ESI |
Используется SIB |
B5 |
10 - 110 - 101 |
ESI |
SS: [EBP] + disp32 |
B6 |
10 - 110 - 110 |
ESI |
DS: [ESI] + disp32 |
B7 |
10 - 110 - 111 |
ESI |
DS: [EDI] + disp32 |
|
B8 |
10 - 111 - 000 |
EDI |
DS: [EAX] + disp32 |
B9 |
10 - 111 - 001 |
EDI |
DS: [ECX] + disp32 |
BA |
10 - 111 - 010 |
EDI |
DS: [EDX] + disp32 |
BB |
10 - 111 - 011 |
EDI |
DS: [EBX] + disp32 |
BC |
10 - 111 - 100 |
EDI |
Используется SIB |
BD |
10 - 111 - 101 |
EDI |
SS: [EBP] + disp32 |
BE |
10 - 111 - 110 |
EDI |
DS: [ESI] + disp32 |
BF |
10 - 111 - 111 |
EDI |
DS: [EDI] + disp32 |
|
C0 |
11 - 000 - 000 |
EAX |
EAX |
C1 |
11 - 000 - 001 |
EAX |
ECX |
C2 |
11 - 000 - 010 |
EAX |
EDX |
C3 |
11 - 000 - 011 |
EAX |
EBX |
C4 |
11 - 000 - 100 |
EAX |
ESP |
C5 |
11 - 000 - 101 |
EAX |
EBP |
C6 |
11 - 000 - 110 |
EAX |
ESI |
C7 |
11 - 000 - 111 |
EAX |
EDI |
|
C8 |
11 - 001 - 000 |
ECX |
EAX |
C9 |
11 - 001 - 001 |
ECX |
ECX |
CA |
11 - 001 - 010 |
ECX |
EDX |
CB |
11 - 001 - 011 |
ECX |
EBX |
CC |
11 - 001 - 100 |
ECX |
ESP |
CD |
11 - 001 - 101 |
ECX |
EBP |
CE |
11 - 001 - 110 |
ECX |
ESI |
CF |
11 - 001 - 111 |
ECX |
EDI |
|
D0 |
11 - 010 - 000 |
EDX |
EAX |
D1 |
11 - 010 - 001 |
EDX |
ECX |
D2 |
11 - 010 - 010 |
EDX |
EDX |
D3 |
11 - 010 - 011 |
EDX |
EBX |
D4 |
11 - 010 - 100 |
EDX |
ESP |
D5 |
11 - 010 - 101 |
EDX |
EBP |
D6 |
11 - 010 - 110 |
EDX |
ESI |
D7 |
11 - 010 - 111 |
EDX |
EDI |
|
D8 |
11 - 011 - 000 |
EBX |
EAX |
D9 |
11 - 011 - 001 |
EBX |
ECX |
DA |
11 - 011 - 010 |
EBX |
EDX |
DB |
11 - 011 - 011 |
EBX |
EBX |
DC |
11 - 011 - 100 |
EBX |
ESP |
DD |
11 - 011 - 101 |
EBX |
EBP |
DE |
11 - 011 - 110 |
EBX |
ESI |
DF |
11 - 011 - 111 |
EBX |
EDI |
|
E0 |
11 - 100 - 000 |
ESP |
EAX |
E1 |
11 - 100 - 001 |
ESP |
ECX |
E2 |
11 - 100 - 010 |
ESP |
EDX |
E3 |
11 - 100 - 011 |
ESP |
EBX |
E4 |
11 - 100 - 100 |
ESP |
ESP |
E5 |
11 - 100 - 101 |
ESP |
EBP |
E6 |
11 - 100 - 110 |
ESP |
ESI |
E7 |
11 - 100 - 111 |
ESP |
EDI |
|
E8 |
11 - 101 - 000 |
EBP |
EAX |
E9 |
11 - 101 - 001 |
EBP |
ECX |
EA |
11 - 101 - 010 |
EBP |
EDX |
EB |
11 - 101 - 011 |
EBP |
EBX |
EC |
11 - 101 - 100 |
EBP |
ESP |
ED |
11 - 101 - 101 |
EBP |
EBP |
EE |
11 - 101 - 110 |
EBP |
ESI |
EF |
11 - 101 - 111 |
EBP |
EDI |
|
F0 |
11 - 110 - 000 |
ESI |
EAX |
F1 |
11 - 110 - 001 |
ESI |
ECX |
F2 |
11 - 110 - 010 |
ESI |
EDX |
F3 |
11 - 110 - 011 |
ESI |
EBX |
F4 |
11 - 110 - 100 |
ESI |
ESP |
F5 |
11 - 110 - 101 |
ESI |
EBP |
F6 |
11 - 110 - 110 |
ESI |
ESI |
F7 |
11 - 110 - 111 |
ESI |
EDI |
|
F8 |
11 - 111 - 000 |
EDI |
EAX |
F9 |
11 - 111 - 001 |
EDI |
ECX |
FA |
11 - 111 - 010 |
EDI |
EDX |
FB |
11 - 111 - 011 |
EDI |
EBX |
FC |
11 - 111 - 100 |
EDI |
ESP |
FD |
11 - 111 - 101 |
EDI |
EBP |
FE |
11 - 111 - 110 |
EDI |
ESI |
FF |
11 - 111 - 111 |
EDI |
EDI |
|
В этой таблице понятия "Операнд 1" и "Операнд 2" - это понятия
условные. Так как байт MRM не задает порядок операндов в команде.
Форма адресации памяти, показанная в колонке "Операнд 2", никак
не зависит от значения поля ( reg ) байта MRM. Поэтому
в таблице один и тот же набор форм адресации повторяется по восемь раз.
Обозначение disp8 означает, что в машинной команде
следом за байтом MRM (или за байтом SIB, если в команде есть байт SIB)
расположен один байт, задающий смещение адреса. Это смещение расширяется
(со знаком) до четырех байт и добавляется к значению индекса.
Обозначение disp32 означает, что в машинной команде
следом за байтом MRM (или за байтом SIB, если в команде есть байт SIB)
расположены четыре байта, задающие смещение адреса. Это смещение
добавляется к значению индекса.
Для случая, когда ( mod = 00 ) и ( r/m = 101 ),
четыре байта disp32 задают полный адрес, то есть, смещение
относительно начала сегмента.
Форма адресации [ EBP ] не может применяться без задания смещения,
то есть, по ( mod = 00 ). Если смещение равно нулю,
то его все равно нужно явно задавать, используя, например,
( mod = 01 ).
В тех формах адресации, где в качестве индексного регистра
выступает регистр EBP, сегментом по умолчанию является сегмент SS.
Во всех остальных случаях сегментом по умолчанию является сегмент DS.
Основные страницы справочника
Справочник по командам процессоров x86 - главная страница
(здесь карта всех страниц справочника)
Структура машинной команды
Байты MRM и SIB - формы адресации
Все команды по алфавиту (кратко)
Все команды по алфавиту (подробно)
Первый байт кода операций
Второй байт кода операций