Архитектура ЭВМ и систем. Коваль А.С - 50 стр.

UptoLike

Составители: 

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 Работа со стеком