Реализуемая в командах перехода и в командах вызова:
10. Косвенная адресация с использованием памяти.
Постбайтный режим описание:
Режим задающийся с помощью специального байта – постбайта адресации. Этот байт следует в машиной команде за байтом кода операции. Такие режимы адресации называют – постбайтными режимами.
Постбайтные режимы адресации:
- прямая регистровая адресация
- прямая адресация памяти
- косвенная регистровая адресация
- базовая адресация
- индексная адресация
- базово-индексная адресация без смещения
- базово-индексная адресация со смещением
Для двухадресной команды постбайт адресации имеет следующую структуру:
mod
reg
r/m
7 6 5 3 2 1
reg постбайта задает прямой регистровый адрес операнда, находящегося в РОН(регистры общего назначения).
r/m (register/memory) задает адрес второго операнда команды, находящегося либо в регистре, либо в памяти.
mod (режим) – определяет, какой адрес задает r/m(при mod = (11)2 адрес регистра, иначе адрес памяти и mod задает также смещение в байтах (disp)).
При двухадресной команде адрес одного из операндов является также адресом результата (называется приемником).
Специальный бит d кода операции определяет, какой из операндов будет приемником.
(при d = 1 приемник – операнд в поля reg, при d = 0 – операнд в r/m)
Специальный бит w определяет длину операндов. (w=0,длина = байт; w=1, длина = 2 байта)
код r/m
mod=11
mod <>11
w=0
w=1
Base
Index
AL
AX
BX
SI
CL
CX
BX
DI
DL
DX
BP
SI
BL
BX
BP
DI
AH
SP
-
SI
CH
BP
-
DI
DH
SI
BP
-
BH
DI
BX
-
Форматы команд:
1.Однобайтная безадресная команда - - для команд с неявной адресацией или не использующие операндов
2.Однобайтная адресная команда reg- регистровый адрес.w-длина операнда (0-байт, 1-слово)
3.Двухадресная команда с постбайтом адресации. (при d = 1 приемник – операнд в поля reg, при d = 0 – операнд в r/m)
mod (режим) – определяет, какой адрес задает r/m(при mod = (11)2 адрес регистра, иначе адрес памяти и mod задает также смещение в байтах (disp)).
4.Одноадресная команда с постбайтом адресации. OpCE - расширение кода операции.
5. Двухоперандная команда с постбайтом адресации с непосредственным операндом.
s-знаковое расширение, актуален при w=1(длина операнда слово). При S=1 непосердственный операнд занимает 1 байт в памяти и требует расширение до слова.При S=0 длина операнда 2 байта.