Программирование на Ассемблере
Поэтому, если используется постинкрементная/предекрементная адресация стека
в байтовых командах, SP будет увеличиваться/уменьшаться на два. Например,
команда MOVE.B #1,-(SP) разместит байт 1 в стеке, предварительно уменьшив
SP на два (а при использовании любого другого адресного регистра вместо SP
размер декремента будет 1). Как видно из примеров, регистр указателя стека имеет два символических
имени: SP и A7. Таким образом, записи MOVE #1,-(SP) и MOVE #1,-(A7)
полностью эквивалентны, однако рекомендуется использовать первую форму
записи указателя стека (это делает программу более \"читабельной\",
подчеркивая разницу между обычным адресным регистром и SP). Итак, мы рассмотрели все 12 методов адресации процессора MC68000: Nо Название адресации Формат
--------------------------------------------------------------------------
1 регистровая (по регистру данных) Dn
2 регистровая (по регистру адреса) An
3 косвенная регистровая (An)
4 косвенная регистровая с постинкрементом (An)+
5 косвенная регистровая с предекрементом -(An)
6 косвенная регистровая с 16-битным смещением и
индексированием d16(An)
7 косвенная регистровая с 8-битным смещением и
индексированием d8(An,Rn)
8 абсолютная короткая xxxx.W
9 абсолютная длинная xxxxxxxx.L
10 непосредственная (прямая) #\'data\'
11 косвенная относительно PC с 16-битным смещением
и индексированием d16(PC)
12 косвенная относительно PC с 8-битным смещением
и индексированием d8(PC,Rn)
Условные обозначения: An адресный регистр (A0-A7)
Dn регистр данных (D0-D7)
d16 16-битное число
d8 8-битное число
Rn любой регистр (A0-A7, D0-D7)
\'data\' число (размер зависит от суффикса команды) Процессор MC68020, помимо описанных двенадцати, поддерживает еще шесть
методов адресации:
- косвенная регистровая с базовым (32-битным) смещением и индексированием
(аналогично косвенной регистровой с 8-битным смещением и
индексированием);
- косвенная через память с постиндексированием.
|