Подробное описание системы команд микропроцессора МС68020 и способов адресации, страница 2

SP               - активный указатель стека

X                - бит расширения (один из кодов условия)

Z                - бит равенства нулю (один из кодов условия)

V                - бит переполнения (один из кодов условия)

Непосредственные - непосредственные данные, содержащиеся данные             в команде

d                - смещение адреса

Источник         - содержимое источника

Приемник         - содержимое приемника

Вектор           - адрес вектора исключения

ea               - допустимый исполнительный адрес

ПОДПОЛЯ И КВАЛИФИКАТОРЫ

<бит> В <операнде>    - указание отдельного бита операнда

<иа>{смещение:длина}  - указание битового подполя

(<операнд>)           - значение  по адресу, указанному операндом

<операнд>             - двоично-десятичный  операнд;   операции

(десятич)               должны выполняться в десятичной арифметике.

(<регистр адреса>)    - косвенная адресация через регистр; рас-(<регистр адреса>)     положенный в памяти операнд команды ад(<регистр адреса>)+     ресуется содержимым регистра. Допустимы квалификаторы  способа  адресации -, +,

(d) и (d,ix) (объясняются  в  ГЛАВЕ  2.

ОРГАНИЗАЦИЯ  ДАННЫХ  И  СПОСОБЫ АДРЕСАЦИИ).

#xxx или #<данные>    - операндом   являются   непосредственные данные, содержащиеся в команде.

ОПЕРАЦИИ

Операции, выполняемые командами, делятся на бинарные, унарные и специальные.

Бинарные  операции имеют вид <операнд><операция><операнд>. Возможные <операции> перечислены ниже:

>                 - левый операнд замещает правый

<->                - два операнда меняются местами

+                  - два операнда суммируются

-                  - правый операнд вычитается из левого

*                  - два операнда перемножаются

/                  - левый операнд делится на правый

&                  - конъюнкция операндов

V                  - дизъюнкция операндов

(mod 2)            - операнды складываются по модулю 2

<                  - истина, если левый операнд меньше правого

>                  - истина, если правый операнд меньше левого сдвигается_на      - левый операнд сдвигается  на  число  бит, указанное правым операндом циклически_сдвигается_на

- то же, но сдвиг циклический

Унарные операции:

~<операнд>            - логическое дополнение операнда,  побитная инверсия распространение       - распространение   знака;   старший  бит знака <операнда>        младшей компоненты  замещает  все  биты старшей компоненты проверка <операнда>   - операнд сравнивается с 0, результат используется для выработки кодов условия

Специальные операции:

TRAP               - эквивалентно последовательности  действий:

слово формата/смещения >(SSP); SSP-2 >SSP;

PC >(SSP);     SSP-4 >SSP;      SR >(SSP);

SSP-2 >SSP; (вектор) >PC

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

Если <условие>     - проверяется  <условие>.  Если оно истинно, то <операции>        выполняются <операции>, следующие за 'то'.

иначе <операции>     В противном случае, если 'иначе' присутствует, выполняются <операции>, следующие за

'иначе'. Если же <условие> ложно и 'иначе'

отсутствует,  то  не  выполняются  никакие операции.

ABCD       Расширенное десятичное сложение     ABCD

--------------------------------------------------Операция:       Источник + Приемник + X  > Приемник

(десятичн) (десятичн)

Синтаксис:      ABCD Dx,Dy

ABCD -(Ax),-(Ay)

Атрибуты:       Размер=(Байт)

Описание:

Суммируется  операнд-Источник,  операнд-Приемник  и бит расширения; результат  помещается  в  операнд-Приемник.

Используется  двоично-десятичная  арифметика.  Операнды могут адресоваться двумя способами:

1. Операнды содержатся в регистрах данных, указанных в команде.

2. Операнды адресуются с предекрементированием  с  помощью адресных регистров, указанных в команде.

Операция выполняется только над байтовыми операндами.

Коды условия:

X   N   Z   V   C

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

¦ * ¦ U ¦ * ¦ U ¦ * ¦

L---+---+---+---+---N       неопределен

Z       0, если результат не равен нулю;

иначе не меняется

V       неопределен

C       1, если произошел десятичный перенос; иначе 0

X       равен C.

ЗАМЕЧАНИЕ

Обычно код Z программно устанавливается в 0 перед  началом некоторой операции, что позволяет обнаружить нулевой результат после завершения последовательности вычислений с многократной точностью.

Формат команды:

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---T----------¬

¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦Регистр Ry ¦ 1 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦R/M¦Регистр Rx¦

L---+---+---+---+-----------+---+---+---+---+---+---+----------Поля команды:

Поле Регистра Ry определяет регистр Приемника:

При R/M=0 - регистр данных

При R/M=1 - регистр адреса  для  способа  адресации  с предекрементированием.

Поле R/M определяет способ адресации операндов:

0 - операция над регистрами данных

1 - операция над памятью.

Поле Регистра Rx определяет регистр Источника:

При R/M=0 - регистр данных

При R/M=1 - регистр адреса  для  способа  адресации  с предекрементированием.

ADD                    Сложение                      ADD

-------------------------------------------------------Операция:       Источник + Приемник  > Приемник

Синтаксис:      ADD  <иа>,Dn

ADD  Dn,<иа>

Атрибуты:       Размер=(Байт,Слово,Длинное слово)

Описание:

Суммируется  операнд-Источник  и  операнд-Приемник; результат  помещается  в  операнд-Приемник.  Используется двоичная  арифметика.  Размер операндов - байт, слово и длинное слово. Вид команды определяет, какой из операндов является Источником, а какой Приемником, а также их размер.

Коды условия:

X   N   Z   V   C

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

¦ * ¦ * ¦ * ¦ * ¦ * ¦

L---+---+---+---+---N       1, если результат отрицателен; иначе 0