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

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

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

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

L----------------+----+---------L----------------+----+--------ЗАМЕЧАНИЯ:

1. Если Приемником  является  регистр  данных,  то  его нельзя  определить, используя поле Моды Исполнительного адреса (т.е. по формату  SUB Dn,<иа> ),- следует просто указать номер регистра в поле Dn (т.е.  по формату  SUB <иа>,Dn ).

2. Если Приемником является регистр адреса, используется команда SUBA. Если Источником служат непосредственные данные, используются команды SUBI  и  SUBQ.

Большинство ассемблеров автоматически обрабатывают такие случаи.

SUBA              Вычитание из адреса             SUBA

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

Синтаксис:      SUBA  <иа>,An

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

Описание:

Из адресного регистра-Приемника вычитается адресный регистр-Источник; результат помещается в Приемник. Размер операндов  -  слово и длинное слово. Знак словного операнда-Источника перед вычитанием распространяется до 32

битов.

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

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

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

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

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

¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦Регистр An ¦  операции ¦  Мода       Регистр  ¦

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

Поле Регистра An определяет любой из 8 регистров адреса, который всегда является Приемником.

Поле Моды операции кодирует размер операндов:

011 - слово. Знак Источника распространяется для получения  длинного  операнда и операция производится над всеми 32 битами адресного регистра.

111 - длинное слово.

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

Источника. Допустимы все способы адресации:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

L----------------+----+---------L----------------+----+--------SUBI        Вычитание непосредственных данных      SUBI

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

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

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

Описание:

Из  операнда-Приемника вычитаются Непосредственные данные; результат помещается  в  операнд-Приемник.  Размер операндов  -  байт, слово и длинное слово. Размер <данных> приводится к заданному размеру операндов.

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

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

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

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

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

¦        Словные данные         ¦      Байтовые данные         ¦

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

¦           Длинные данные (включают предыдущее слово)         ¦

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

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

00 - байт

01 - слово

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

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

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

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

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

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

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

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

¦       An       ¦ -  ¦   -    ¦¦    (xxx).L     ¦111 ¦  001   ¦

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

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

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

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

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

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