Организация данных и способы адресации, страница 7

--------------v--------¬

Исполнительный адрес:          ¦        операнд       ¦

L----------------------2.8.7.2 КОСВЕННАЯ АДРЕСАЦИЯ ЧЕРЕЗ ПРОГРАММНЫЙ_СЧЕТЧИК/ПАМЯТЬ  С

ПРЕДИНДЕКСИРОВАНИЕМ.  В отличие от предыдущего случая индексный операнд здесь используется при вычислении промежуточного, а  не окончательного  адреса.  Промежуточный адрес памяти вычисляется путем сложения значения программного счетчика PC, базового смещения (bd) и индексного операнда (Xn.SIZE*SCALE). Как и в  предыдущем  случае,  промежуточный  адрес служит для считывания из программного пространства длинного слова, которое дает  окончательный  исполнительный  адрес, будучи сложено с необязательным внешним смещением (od).

Формирование:           ИА = (bd+PC+Xn.SIZE*SCALE)+od

Синтаксис ассемблера:   ([bd,PC,Xn.SIZE*SCALE],od)

Мода:                   111

Поле регистра:          011     31                   0

-----------------------¬

Программный счетчик:     ----->¦адрес слова расширения¦

L-------------T--------31                    0          ¦

Базовое    ------------------------¬        -v¬

смещение:  ¦значение с распр.знаком+-------->+¦

L------------------------        LT31                    0          ¦

Индексный  ------------------------¬         ¦

регистр:   ¦значение с распр.знаком+-¬       ¦

L------------------------ ¦       ¦

¦       ¦

--------¬           -v¬     -v¬

Масштаб:        ¦масштаб+----------->*+----->+¦

L--------       31  L--     LT-      0

--------------v--------¬

¦    косвенный адрес   ¦

L-------------T--------указывает на

31           ¦       0

--------------v--------¬

¦ значение по адресу в ¦

¦программном  простр-ве¦

L-------------T--------31                    0          ¦

Выходное   ------------------------¬        -v¬

смещение:  ¦значение с распр.знаком+-------->+¦

L------------------------        LT31           ¦       0

--------------v--------¬

Исполнительный адрес:          ¦        операнд       ¦

L----------------------2.8.8 Абсолютные способы адресации

При абсолютных способах адресации адрес операнда  содержится  в словах расширения.

2.8.8.1 АБСОЛЮТНЫЙ КОРОТКИЙ АДРЕС. Для этого способа  адресации требуется одно слово расширения. В этом слове содержится  адрес операнда. Знак 16-битного адреса перед использованием распространяется до 32 бит.

Формирование:           ИА задан

Синтаксис ассемблера:   xxx.W

Мода:                   111

Регистр:                000 31             15        0

- - - - - - - -T-----------¬

Слово расширения:        -> распростр.знак¦адрес слова¦

L - - - - - - -+-----------31             ¦          0

---------------v-----------¬

Адрес памяти:              ¦         операнд          ¦

L--------------------------2.8.8.2 АБСОЛЮТНЫЙ ДЛИННЫЙ АДРЕС. Для этого  способа  адресации требуется два слова расширения. Адрес операнда получается  конкатенацией слов расширения. Первое  слово  расширения  содержит старшую, второе слово - младшую часть адреса.

Формирование:           ИА задан

Синтаксис ассемблера:   xxx.L

Мода:                   111

Регистр:                001 15         0

-------------¬

Первое слово             ->¦старшие биты¦

расширения:                L---------T--¦    15         0

¦   -------------¬

Второе слово             ------------+--->младшие биты¦

расширения:                          ¦   L-----T------31       ¦         ¦     0

----------v---------v------¬

¦       конкатенация       ¦

L------------T-------------¦

-------------v-------------¬

Адрес памяти:              ¦          операнд         ¦

L--------------------------2.8.9 Непосредственные данные

Для этого способа адресации, в зависимости от  длины  операнда, требуется одно или два слова расширения.

Байтовые операции - операнд содержится в младшем байте слова расширения

Словные операции  - операнд содержится в слове расширения

Операции над длинными словами  - операнд содержится в двух словах  расширения; в первом слове - старшие 16  бит;

младшие 16 бит - во втором слове. Сопроцессоры  могут поддерживать работу с непосредственными данными любой длины, при кодовой части команды сопроцессора,  занимающей не менее одного слова.

Формирование:           операнд задан

Синтаксис ассемблера:   #xxx

Мода:                   111

Регистр:                100

2.9 КОДИРОВАНИЕ ИСПОЛНИТЕЛЬНЫХ АДРЕСОВ

В Таблице 2-1 детально описан формат  слов,  задающих  исполнительный адрес операнда. Они отнесены к трем  категориям:  слова операции одноадресных команд, слова расширения индексно/косвенной адресации короткого и полного форматов. У самой длинной команды микропроцессора MC68020 количество слов расширения  может достигать 10. Их составляют полноформатные исполнительные адреса источника и приемника с 32-битными базовыми и выходными смещениями.

Таблица 2-1. Форматы исполнительных адресов

Формат одноадресной команды

15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0

----T---T---T---T---T---T---T---T---T---T---------------------¬

¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦ исполнительный адрес¦

¦ X ¦ X ¦ X ¦ X ¦ X ¦ X ¦ X ¦ X ¦ X ¦ X +----------T----------+

¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦  способ  ¦   регистр¦

L---+---+---+---+---+---+---+---+---+---+----------+----------Слово расширения короткого формата для MC68020

15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0

----T-----------T---T-------T---T-----------------------------¬

¦D/A¦  регистр  ¦W/L¦масштаб¦ 0 ¦        смещение             ¦

L---+-----------+---+-------+---+-----------------------------Слова расширения полного формата для MC68020

15  14  13  12  11  10   9   8   7   6   5   4   3  2   1   0

----T-----------T---T-------T---T---T---T-------T---T---------¬

¦D/A¦  регистр  ¦W/L¦масштаб¦ 1 ¦BS ¦IS ¦разм.BD¦ 0 ¦  I/IS   ¦

+---+-----------+---+-------+---+---+---+-------+---+---------+

¦               базовое смещение (0,1 или 2 слова)            ¦

+-------------------------------------------------------------+

¦               внешнее смещение (0,1 или 2 слова)            ¦