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

Непосредственный операнд помещается в  регистр  состояния, программный счетчик продвигается на следующую  команду; процессор прекращает  предвыборку  и  выполнение команд.  Выполнение возобновляется в случае прерывания, а также при исключениях по трассировке и сбросу. Исключение по трассировке возникает в том случае, когда  перед  началом выполнения команды STOP включено состояние трассировки. Прерывание возникает в случае, когда  имеется  запрос  на  прерывание с большим приоритетом, чем приоритет, установленный в непосредственных  данных;  в противном  случае  запрос  игнорируется.  Если в непосредственных данных равен нулю бит, соответствующий биту

S  регистра состояния, возбуждается исключение по нарушению привилегированности. Внешний сброс всегда возбуждает обработку исключения по сбросу.

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

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

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 ¦ 0¦

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

¦                  Непосредственные данные                     ¦

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

Поле Непосредственных данных задает данные, загружаемые в регистр состояния.

SUB                     Вычитание                       SUB

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

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

SUB  Dn,<иа>

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

Описание:

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

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

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

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

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

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

Поле Регистра Dn определяет любой из 8 регистров данных.

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

Байт  Слово Длинное слово          Операция

000   001   010            (<Dn>) - (<иа>)  > <Dn>

100   101   110            (<иа>) - (<Dn>)  > <иа>

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

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

-----------------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----------------+----+--------(*) только для словных и длинных операндов б. Если  адрес  определяется в Приемнике, то допустимы только способы адресации для изменяемой памяти:

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

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

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

¦       Dn       ¦ -  ¦   -    ¦¦    (xxx).W     ¦111 ¦  000   ¦

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

¦       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)   ¦ -  ¦   -    ¦

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