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

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

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

L----------------+----+---------L----------------+----+--------CMPI   Сравнение  с непосредственным операндом   CMPI

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

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

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

Описание:

Непосредственные данные вычитаются из Приемника и в соответствии  с результатом устанавливаются коды условия.

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

Непосредственных данных должен соответствовать заданному размеру операндов.

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

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

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

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

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

¦   (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----------------+----+--------Поле непосредственных данных:

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

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

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

CMPM          Сравнение память-память         CMPM

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

Синтаксис:      CMPM  (Ay)+,(Ax)+

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

Описание:

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

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

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

¦ 1 ¦ 0 ¦ 1 ¦ 1 ¦ Регистр Ax¦ 1 ¦Размер ¦ 0 ¦ 0 ¦ 1 ¦Регистр Ay¦

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

Поле регистра Ax (это всегда Приемник)  определяет  адресный  регистр,  используемый для способа адресации с постинкрементированием

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

00 - байт

01 - слово

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

Поле регистра Ay (это всегда Источник)  определяет  адресный  регистр,  используемый для способа адресации с постинкрементированием

CMP2        Проверка попадания в диапазон        CMP2

----------------------------------------------------Операция:       Проверить Rn < Источник.Нижняя_граница,

Rn > Источник.Верхняя_граница и установить коды условия

Синтаксис:      CMP2 <иа>,Rn

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

Описание:

Производится проверка попадания значения указанного регистра данных в  диапазон,  определяемый  парой  чисел, расположенных по заданному исполнительному адресу. Значение Нижней_границы находится по исполнительному адресу,  адрес  значения Верхней_границы превышает исполнительный адрес на размер операнда.

Множество двоичных чисел по mod 2**N (где N равно  размеру_операндов  в  случае,  если Rn - регистр данных, и

N=32 в случае, если Rn - регистр адреса) рассматривается как кольцо (положительное направление на котором задается инкрементацией на единицу), а допустимый  диапазон - как дуга кольца, начинающаяся в Нижней_границе, и заканчивающаяся в Верхней. Так, к примеру,  при Нижней_