Lectures / 05
.pdf6.2.6. Базовая индексная косвенная
адресация со смещением
MOV AL,[BX+SI+disp]
AL
+
[BX] SI +
BX +
DS
MOV AL,[BP+SI+disp]
AL
+
[BP] SI +
BP +
SS
6.2.6. Базовая индексная косвенная
адресация со смещением
Примеры:
mov al, disp[bx][si] |
Смещение |
mov al, disp[bx+di] |
относительно DS |
|
|
mov al, [bp+si+disp] |
Смещение |
mov al, [bp][di][disp] |
относительно SS |
6.2. Обобщенная схема косвенной
адресации в процессоре Intel 8086
Режимы косвенной адресации в 80386
База |
|
Индекс |
|
Масштаб |
|
Смещение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1
2
4
8
Эфф. адрес = База + (Индекс* Масштаб) + Смещение
Косвенная адресация с
масштабированием в 80386
AL
ESI*scale
EBX
VarName
+
+
mov al, VarName[EBX+ESI*scale]
(scale = 1, 2, 4, 8)
Структура машинной команды
|
|
Необязательный байт |
|
|
|
|
|
|
|
|
|
Один или два байта |
|
|
|
||
|
SIB (Scaled Indexed |
|
|
|
|
КОП (два байта, если |
|
Byte), если команда |
|
|
|
|
|
Непосредст- |
|
||
присутствует |
|
использует режим |
|
венный |
|
префикс |
|
адресации памяти с |
|
операнд: 0, 1, |
|
расширения КОП 0F) |
|
масштабированием |
|
2 или 4 байта |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
0..4 |
|
|
|
|
|
|
|
|
Смещение: 0, 1, |
|
|
|
Байт “mod-reg- |
|
|
||
префиксных |
|
|
|
||
|
|
2 или 4 байта |
|
||
байта, |
|
r/m”(адресный |
|
|
|
|
|
|
|
||
|
|
||||
влияющих на |
|
байт), определяет |
|
|
|
выполнение |
|
режим адресации |
|
|
|
команды |
|
и размер |
|
|
|
|
|
операнда (только |
|
|
|
|
|
|
|||
|
|
для операндов в |
|
|
|
|
|
регистрах или |
|
|
|
|
|
|
|||
|
|
памяти) |
|
|
|
|
|
|
|
|
|
Пример: КОП для команды ADD
0 |
0 |
0 |
0 |
0 |
0 |
d |
s |
|
|
|
|
|
|
|
|
d=0
d=1
s=0
s=1
сложение из регистра в память сложение из памяти в регистр сложение 8-битовых операндов сложение 16или 32-битовых операндов
Формат байта mod-reg-r/m
(адресного байта)
Формат поля REG байта mod-reg-r/m
|
|
Регистр, данные |
|
Регистр, данные |
|
Регистр, данные |
|
Значение REG |
|||||||
|
размером 8 бит |
|
размером 16 бит |
|
размером 32 бит |
||
|
|||||||
|
|
|
|
|
|
|
Определение режима адресации по
байту mod-reg-r/m (I)