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

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

¦   (d{16},An)   ¦101 ¦ном.An  ¦¦   (d{16},PC)   ¦ -  ¦   -    ¦

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

¦  (d{8},An,Xn)  ¦110 ¦ном.An  ¦¦  (d{8},PC,Xn)  ¦ -  ¦   -    ¦

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

¦   (bd,An,Xn)   ¦110 ¦ном.An  ¦¦   (bd,PC,Xn)   ¦ -  ¦   -    ¦

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

¦([bd,An,Xn],od) ¦110 ¦ном.An  ¦¦ ([bd,PC,Xn],od)¦ -  ¦   -    ¦

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

¦([bd,An],Xn,od) ¦110 ¦ном.An  ¦¦ ([bd,PC],Xn,od)¦ -  ¦   -    ¦

L----------------+----+---------L----------------+----+--------Поле  Непосредственных  данных (данные, непосредственно следующие за операционным словом):

если Размер = 00, данные  находятся  в  младшем  байте слова непосредственных данных.

если Размер = 01, данные находятся в слове непосредственных данных.

если Размер = 10, данные находятся в двух словах   непосредственных данных.

SUBQ         Вычитание  непосредственных данных   SUBQ

в диапазоне 1-8

-----------------------------------------------------Операция:       Приемник - Непосредственные данные  > Приемник

Синтаксис:      SUBQ  #<данные>,<иа>

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

Описание:

Непосредственные данные вычитаются из операнда-Приемника;  результат  помещается  в  операнд-Приемник. Непосредственные данные лежат в диапазоне от 1 до 8.  Размер операндов - байт, слово и длинное слово. В случае словного  или  длинного операнда операция может выполняться над адресным регистром. При этом операция  производится над всем адресным регистром, независимо от размера операнда; код условия не изменяется.

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

X   N   Z   V   C

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

¦ * ¦ * ¦ * ¦ * ¦ * ¦

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

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

V       1, если произошло переполнение; иначе 0

C       1, если произошел заем; иначе 0

X       равен C.

Если Приемник является адресным регистром, коды условия не изменяются.

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

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

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

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

¦ 0 ¦ 1 ¦ 0 ¦ 1 ¦  Данные   ¦ 1 ¦ Размер¦  Мода       Регистр  ¦

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

Поле Данных содержит три бита непосредственных  данных.

Значения 0,1,2,...7 представляют соответственно данные

8,1,2,...7.

Поле Размера определяет размер операндов:

00 - байт

01 - слово

10 - длинное слово

Поле Исполнительного адреса  определяет  местоположение

Приемника. Допустимы только способы адресации изменяемых операндов:

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

¦Способ адресации¦Мода¦Регист𠦦Способ адресации¦Мода¦Регистр ¦

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

¦       Dn       ¦000 ¦ном.Dn  ¦¦    (xxx).W     ¦111 ¦  000   ¦

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

¦       An  (*)  ¦001 ¦ном.An  ¦¦    (xxx).L     ¦111 ¦  001   ¦

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

¦      (An)      ¦010 ¦ном.An  ¦¦   #<данные>    ¦ -  ¦   -    ¦

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

¦      (An)+     ¦011 ¦ном.An  ¦¦                ¦    ¦        ¦

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

¦     -(An)      ¦100 ¦ном.An  ¦¦                ¦    ¦        ¦

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

¦   (d{16},An)   ¦101 ¦ном.An  ¦¦   (d{16},PC)   ¦ -  ¦   -    ¦

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

¦  (d{8},An,Xn)  ¦110 ¦ном.An  ¦¦  (d{8},PC,Xn)  ¦ -  ¦   -    ¦

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

¦   (bd,An,Xn)   ¦110 ¦ном.An  ¦¦   (bd,PC,Xn)   ¦ -  ¦   -    ¦

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

¦([bd,An,Xn],od) ¦110 ¦ном.An  ¦¦ ([bd,PC,Xn],od)¦ -  ¦   -    ¦

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

¦([bd,An],Xn,od) ¦110 ¦ном.An  ¦¦ ([bd,PC],Xn,od)¦ -  ¦   -    ¦

L----------------+----+---------L----------------+----+--------(*) - только слова и длинные слова.

SUBX             Расширенное вычитание              SUBX

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

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

SUBX -(Ax),-(Ay)

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

Описание:

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

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

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

Размер операндов - байт, слово и длинное слово.

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

X   N   Z   V   C

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

¦ * ¦ * ¦ * ¦ * ¦ * ¦

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

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

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

V       1, если произошло переполнение; иначе 0

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

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

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

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

Если R/M=0, то регистр данных Dy.