Lectures / 05
.pdfОпределение режима адресации по
байту mod-reg-r/m (II)
Определение режима адресации по
байту mod-reg-r/m (III)
Формат байта SIB (Scale-Index-Base)
00 |
Index*1 |
|
000 |
EAX |
|
000 |
EAX |
01 |
Index*2 |
|
001 |
ECX |
|
001 |
ECX |
10 |
Index*4 |
|
010 |
EDX |
|
010 |
EDX |
11 |
Index*8 |
|
011 |
EBX |
|
011 |
EBX |
|
|
|
100 |
---- |
|
100 |
ESP |
|
|
||||||
|
|
|
101 |
EBP |
|
101 |
Абсолютный, |
|
|
|
110 |
ESI |
|
|
если MOD=00 |
|
|
|
111 |
EDI |
|
|
EBP, если |
|
|
|
|
|
|
|
MOD=01 или 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
ESI |
|
|
|
|
|
|
111 |
EDI |
|
|
|
|
|
|
|
|
Декодирование: 00C1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MOD=11 → |
|
|
|
|
R/M=001 + бит d=0 → |
|
||||||||||||||||
|
|
|
|
Бит s=0 |
→ |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
поле R/M |
|
|
|
|
приемником является |
|
|||||||||||||||||||||||||
|
|
|
|
складываем 8- |
|
|
|
|
является |
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
регистр cl |
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
битовые величины |
|
регистром |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
|
1 |
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
000000 → |
|
это |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
REG=000 + бит d=0 → |
|
|
|
|
|||||||||||||||||||||||||
|
команда ADD |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
источником является |
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
регистр al |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
Бит d= 0 |
→ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
прибавляем поле |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
REG к полю R/M |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ADD cl,al |
00 C1 |
|
|
|
|
|
|
|
|
|
|
|
Декодирование: |
|
|
01C1 |
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MOD=11 → |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R/M=001 + бит d=0 → |
|
||||||||||||||
|
|
|
|
Бит s=1 → |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
поле R/M |
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
приемником является |
|
|||||||||||||||||||||
|
|
|
|
складываем 32/16- |
|
|
является |
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
регистр ecx/cx |
|
||||||||||||||||||||||||||||
|
|
|
|
битовые величины |
|
|
регистром |
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
|
0 |
0 |
0 |
1 |
|
|
|
|
|
1 |
|
000000 → |
|
это |
|
|
|
|
|
REG=000 + бит d=0 → |
|
||
|
|
|
|||
команда ADD |
|
источником является |
|
||
Бит d=0 → |
|
||||
регистр eax/ax |
|
||||
|
прибавляем поле |
|
|
REG к полю R/M |
|
|
ADD ecx,eax |
01 C1 |
32-битный сегмент |
ADD cx,ax |
01 C1 |
16-битный сегмент |
ADD ecx,eax |
66 01 C1 |
16-битный сегмент |
ADD ecx,eax |
03 C8 |
32-битный сегмент |