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

Атрибуты:       Размер не используется

Описание:

Информация о состоянии  процессора  из  стекового  окна исключения загружается в процессор. Объем  восстанавливаемой информации определяется полем формата  стекового окна в слове формата/смещения.

Коды условия: загружаются из соответствующего слова стека.

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

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

¦ 0 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1¦

L---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--Слово формата/смещения (в стековом окне).

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

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

¦    Формат     ¦ 0 ¦ 0 ¦           Смещение вектора           ¦

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

4-битное поле Формата определяет объем восстанавливаемой информации:

0000 - короткий формат. С вершины  стека  удаляются  4

слова.  Значения регистра состояния и программный счетчик загружаются из стекового окна.

0001 - формат временного окна. С вершины стека  удаляются 4 слова.  Из  стекового  окна  загружается только  регистр состояния, после чего процессор продолжает  выполнять  команду  RTE,  используя вершину активного системного стека. Этим форматом отмечается дно стека прерываний.

0010 - формат программного исключения . С вершины стека удаляются 6 слов. Первые 4 слова интерпретируются как короткий формат, остальные два слова отбрасываются.

1000 - длинный формат MC68010. В MC68020 вызывает исключение ошибки формата.

1001 - формат внутрикомандного исключения  сопроцессора.  С  вершины стека удаляются 10 слов. Возобновляется выполнение команды сопроцессора.

1010 - короткий формат MC68020. С вершины стека удаляются 16 слов. Возобновляется  выполнение  прерванной команды.

1011 - длинный  формат MC68020. С вершины стека удаляются  46  слов. Возобновляется выполнение прерванной команды.

Любые другие коды вызывают исключение ошибки формата.

RTM              Возврат из модуля                  RTM

------------------------------------------------------Операция:       Восстановление состояния модуля, сохраненного в стеке

Синтаксис:      RTM Rn

Атрибуты:       Размер не используется

Описание:

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

Коды условия: загружаются из соответствующего слова стека.

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

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

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 0 ¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦Д/А¦ Регистр ¦

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

Поле Д/А задает вид регистра-указателя  области  данных вызывающего модуля:

0 - указатель является адресным регистром.

1 - указатель является регистром данных.

Поле  Регистра  определяет номер регистра-указателя области данных вызывающего модуля, в который будет  загружено ранее сохраненное значение. При задании регистра  A7  (SP) восстановленное значение теряется, будучи замещено значением стекового  указателя,  которое  тот примет по завершении всех операций со стеком.

RTR      Возврат и восстановление кодов условия    RTR

-----------------------------------------------------Операция:       (SP) >CCR; SP+2 >SP; (SP) >PC; SP+4 >SP

Синтаксис:      RTR

Атрибуты:       Размер не используется

Описание:

Из стека извлекаются и загружаются значения кодов условия  и программного счетчика. Предыдущие значения теряются. Старший (супервизорный) байт  регистра  состояния не меняется.

Коды условия: загружаются из соответствующего слова стека.

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

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

¦ 0 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 1 ¦ 1 ¦ 1¦

L---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--RTS              Возврат из подпрограммы              RTS

--------------------------------------------------------Операция:       (SP) >PC; SP+4 >SP

Синтаксис:      RTS

Атрибуты:       Размер не используется

Описание:

Из стека извлекается  значение программного счетчика. Его предыдущее значение теряется.

Коды условия: не меняются.

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

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

¦ 0 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 1 ¦ 0 ¦ 1¦

L---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--SBCD      Расширенное десятичное вычитание       SBCD

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

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

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

SBCD -(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 перед  началом некоторой операции, что позволяет обнаружить нулевой результат после завершения последовательности вычислений с многократной точностью.