2.6 АДРЕСАЦИЯ
Команды MC68020 содержат информацию двух видов: о действиях, подлежащих выполнению, и о том, где располагаются операнды (или операнд), над которыми эти действия надлежит выполнить. Методы, используемые для определения местоположения (иначе говоря, адресации) операндов, описаны в последующих разделах.
Местоположение операнда задается в команде одним из трех способов:
указанием регистра - номер регистра задается в поле регистра команды;
исполнительным адресом - путем использования различных способов адресации;
неявной ссылкой - некоторые команды, по своему определению, предполагают использование конкретных регистров.
2.7 РЕГИСТРЫ: СОГЛАШЕНИЯ ОБ ОБОЗНАЧЕНИЯХ
Регистры идентифицируются в соответствии со следующей английской мнемоникой:
An - адресный регистр n
(например, A3 - адресный регистр 3)
Dn - регистр данных n
(например, D5 - регистр данных 5)
Rn - адресный регистр или регистр данных n
Xn - обозначает индексный регистр n (регистр адреса или данных)
PC - программный счетчик
SR - регистр состояния
CCR - регистр кодов условий; часть регистра состояния
SP - текущий указатель стека; имена SP и A7 эквивалентны
USP - указатель стека пользователя (A7)
ISP - указатель стека прерываний (A7')
MSP - указатель основного стека (A7'')
SSP - указатель стека супервизора: либо основной (MSP), либо указатель стека прерываний (ISP)
SFC - регистр модификации функционального кода источника
DFC - регистр модификации функционального кода приемника
VBR - базовый регистр векторов исключений
CACR - регистр управления кэш-памяти
CAAR - адресный регистр кэш-памяти
Номер используемого регистра указывается в поле регистра команды. В других полях команды уточняется, какой регистр имеется в виду - адресный или регистр данных, а также определяется способ использования этого регистра.
2.8 ИСПОЛНИТЕЛЬНЫЙ АДРЕС
Большинство команд определяет местоположение операнда, используя поле исполнительного адреса (ИА) в слове операции. На Рис.
2-4 приведен для примера общий формат слова операции для команды с одним исполнительным адресом. Исполнительный адрес состоит из двух 3-битных полей: поля моды и поля регистра. Значением первого поля определяется используемый способ адресации. Поле регистра содержит номер регистра. Описание слова операции для каждой команды дано в ПРИЛОЖЕНИИ C.
15 14 13 12 11 10 9 8 7 5 4 3 2 1 0
----T---T---T---T---T---T---T---T---T----------------------¬
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ исполнительный адрес ¦
¦ X ¦ X ¦ X ¦ X ¦ X ¦ X ¦ X ¦ X ¦ X +----------T-----------+
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ мода ¦ регистр ¦
L---+---+---+---+---+---+---+---+---+----------+-----------Рис. 2-4. Слово операции одноадресной команды
Информация, содержащаяся в поле исполнительного адреса, может оказаться недостаточной для полного определения адреса операнда. Дополнительная информация, называемая расширением исполнительного адреса, содержится в следующем слове или словах и считается составной частью команды (см. Рис.2-3). Детальное описание формата слов расширения можно найти далее в Разделе 2.9 КОДИРОВАНИЕ ИСПОЛНИТЕЛЬНЫХ АДРЕСОВ.
2.8.1 Прямые регистровые способы адресации
Такие способы адресации используются в случаях, когда операнд находится в одном из 16 регистров общего назначения или в одном из управляющих регистров (SR, VBR, SFC, DFC, CACR, CAAR).
2.8.1.1 ПРЯМАЯ АДРЕСАЦИЯ РЕГИСТРА ДАННЫХ. Операнд находится в регистре данных, номер которого указан в поле регистра исполнительного адреса.
Формирование: ИА = Dn
Синтаксис ассемблера: Dn
Мода: 000 31 0
Регистр: n --------¬
Регистр данных: Dn ----> ¦операнд¦
L-------2.8.1.2 ПРЯМАЯ АДРЕСАЦИЯ АДРЕСНОГО РЕГИСТРА Операнд находится в адресном регистре, номер которого указан в поле регистра исполнительного адреса.
Формирование: ИА = An
Синтаксис ассемблера: An
Мода: 001 31 0
Регистр: n --------¬
Адресный регистр: An ----> ¦операнд¦
L-------2.8.2 Косвенные способы адресации через регистр
Такие способы адресации используются в случаях, когда операнд находится в памяти, а его адрес вычисляется по содержимому регистра.
2.8.2.1 КОСВЕННАЯ АДРЕСАЦИЯ ЧЕРЕЗ АДРЕСНЫЙ РЕГИСТР. Адрес операнда находится в адресном регистре, номер которого указан в поле регистра.
Формирование: ИА = (An)
Синтаксис ассемблера: (An)
Мода: 010
Регистр: n 31 0
-------------¬
Адресный регистр: An -------->адрес памяти¦
L-----T------¦
31 ¦ 0
------v------¬
Адрес памяти: ¦ операнд ¦
L------------2.8.2.2 КОСВЕННАЯ АДРЕСАЦИЯ ЧЕРЕЗ АДРЕСНЫЙ РЕГИСТР С ПОСТИНКРЕМЕНТИРОВАНИЕМ. Адрес операнда находится в адресном регистре, номер которого указан в поле регистра. Адрес операнда после своего использования увеличивается на 1, 2 или 4 в соответствии с размером операнда (байт, слово или длинное слово). Сопроцессор может обеспечивать необходимую величину приращения для любого размера операнда, вплоть до 256 байт. Если адресный регистр является указателем стека, а размер операнда равен байту, то адрес увеличивается на 2, а не на 1 с тем, чтобы поддерживать значение указателя на границе слова.
Формирование: ИА = (An)
An=An+SIZE
Синтаксис ассемблера: (An)+
Мода: 011
Регистр: n 31 0
-------------¬
Адресный регистр: An ------------>адрес памяти¦
L-^---T-------+¬ ¦
Размер операнда(1,2 или 4): ------------>+<--+
L-- ¦
31 ¦ 0
------v------¬
Адрес памяти: ¦ операнд ¦
L------------2.8.2.3 КОСВЕННАЯ АДРЕСАЦИЯ ЧЕРЕЗ АДРЕСНЫЙ РЕГИСТР С ПРЕДЕКРЕМЕНТИРОВАНИЕМ. Адрес операнда находится в адресном регистре, номер которого указан в поле регистра. Адрес операнда перед своим использованием уменьшается на 1, 2 или 4 в соответствии с размером операнда (байт, слово или длинное слово). Сопроцессор может обеспечивать необходимую величину декремента для любого размера операнда, вплоть до 256 байт. Если адресный регистр является указателем стека, а размер операнда равен байту, то адрес уменьшается на 2, а не на 1 с тем, чтобы поддерживать значение указателя на границе слова.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.