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

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

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

Описание:

Операнд-Источник вычитается из  Приемника-регистра_данных и в соответствии с результатом устанавливаются коды условия. Регистр данных не изменяется. Размер операндов

- байт, слово и длинное слово.

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

X   N   Z   V   C

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

¦ - ¦ * ¦ * ¦ * ¦ * ¦

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

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

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

C       1, если возник заем; иначе 0

X       не изменяется

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

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

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

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

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

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

Поле Регистра Dn определяет регистр данных-Приемник.

Поле Моды операции:

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

000   001   010                 (<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----------------+----+--------(*) - только слово или длинное слово.

ЗАМЕЧАНИЕ:

Если Приемник  находится  в адресном регистре,  используется команда CMPA. Если Источник задан непосредственным операндом, используется команда CMPI. Для сравнения память-память используется  команда  CMPM.  Большинство ассемблеров автоматически различают эти случаи.

CMPA               Сравнение адресов                CMPA

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

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

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

Описание:

Операнд-Источник вычитается из Приемника-регистра_адреса и в соответствии с результатом устанавливаются  коды условия. Адресный регистр не изменяется. Размер операндов  -  байт,  слово  и длинное слово. Перед сравнением знак словных операндов распространяется до 32 бит.

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

X   N   Z   V   C

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

¦ - ¦ * ¦ * ¦ * ¦ * ¦

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

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

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

C       1, если возник заем; иначе 0

X       не изменяется

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

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

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

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

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

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

Поле регистра An определяет Приемник-регистр_адреса.

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

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   ¦