ВУЗ:
Составители:
50
Пример: mov ax, 100[bx][si], другая форма записи - mov ax, [bx+si+0100]
Код Действие
8b800001
Запись содержимого ячейки памяти с EA (сегмент
DS), определяемым как сумма содержимого регист-
ров si, bx и смещения в команде (10+2+100=112) в
регистр ax. Можно рассматривать значение si как
индекс выбранного регистром bx одномерного мас-
сива в двумерном массиве со стартовым адресом
100.
До выполнения После выполнения
ax=7 ax=5
bx=10 bx=10
si=2 si=2
[0112]=5 [0112]=5 (Предварительно запишите 5 в DS:[0112])
ip=100 ip=104
Неявная адресация.
Неявная адресация задается операцией. Например, в командах обработ-
ки строк неявно используются регистры SI, DI. В командах управления
циклами неявно используется регистр CX и т.д.
Стековая адресация.
Стековая адресация применяется в командах работы со стеком PUSH и
POP. Для этих команд адрес операнда находится в указателе стека SP и ав-
томатически уменьшается или
увеличивается на два при записи в стек или
при чтении из стека. Заполнение стека происходит в направлении умень-
шения адресов ячеек памяти. Стек может обмениваться данными с регист-
рами общего назначения и сегментными регистрами. Команды обмена
данными между стеком и памятью содержат байт адресации, в котором 3-
разрядное поле REG, совместно с полем
КОП, идентифицирует команду.
POP BX
58h
POP AX
5Bh
PUSH AX
50h
PUSH BX
53h
исходное
состояние
SS
SP
SS
SP
SS
SP
SS
SP
SS
SP
AX AX AX
BX
BX
AX
AX
BX BX
Рис. 2.8 Работа со стеком
50 Пример: mov ax, 100[bx][si], другая форма записи - mov ax, [bx+si+0100] Код Действие Запись содержимого ячейки памяти с EA (сегмент DS), определяемым как сумма содержимого регист- ров si, bx и смещения в команде (10+2+100=112) в 8b800001 регистр ax. Можно рассматривать значение si как индекс выбранного регистром bx одномерного мас- сива в двумерном массиве со стартовым адресом 100. До выполнения После выполнения ax=7 ax=5 bx=10 bx=10 si=2 si=2 [0112]=5 [0112]=5 (Предварительно запишите 5 в DS:[0112]) ip=100 ip=104 Неявная адресация. Неявная адресация задается операцией. Например, в командах обработ- ки строк неявно используются регистры SI, DI. В командах управления циклами неявно используется регистр CX и т.д. Стековая адресация. Стековая адресация применяется в командах работы со стеком PUSH и POP. Для этих команд адрес операнда находится в указателе стека SP и ав- томатически уменьшается или увеличивается на два при записи в стек или при чтении из стека. Заполнение стека происходит в направлении умень- шения адресов ячеек памяти. Стек может обмениваться данными с регист- рами общего назначения и сегментными регистрами. Команды обмена данными между стеком и памятью содержат байт адресации, в котором 3- разрядное поле REG, совместно с полем КОП, идентифицирует команду. исходное PUSH AX PUSH BX POP BX POP AX состояние 50h 53h 58h 5Bh AX BX SP SP AX AX AX AX SP SP BX BX BX SP SS SS SS SS SS Рис. 2.8 Работа со стеком
Страницы
- « первая
- ‹ предыдущая
- …
- 48
- 49
- 50
- 51
- 52
- …
- следующая ›
- последняя »