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

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

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

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

¦      (An)+     ¦ -  ¦   -    ¦¦                ¦    ¦        ¦

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

¦     -(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----------------+----+--------Поле Суммарной длины аргументов  определяет  количество байтов в аргументах, передаваемых  вызываемому  модулю

(от 0 до 255). То же количество  байтов  удаляется  из стека командой RTM.

CAS           Сравнение и перестановка операндов           CAS

CAS2                                                       CAS2

--------------------------------------------------------------Операция: CAS:

Приемник <иа> - Операнд_сравнения Dc -> коды условия;

Если Z, Операнд_замены Du -> Приемник <иа>

иначе   Приемник <иа> -> Операнд_сравнения Dc

CAS2:

Приемник (Rn1) - Операнд_сравнения Dc1 ->

-> коды условия;

Если Z, Приемник (Rn2) - Операнд_сравнения Dc2  ->

-> коды условия

Если Z, Операнд_замены Du1 -> Приемник (Rn1)

Операнд_замены Du2 -> Приемник (Rn2)

иначе   Приемник (Rn1) -> Операнд_сравнения Dc1

Приемник (Rn2) -> Операнд_сравнения Dc2

Синтаксис:      CAS  Dc,Du,<иа>

CAS2 Dc1:Dc2,Du1:Du2,(Rn1):(Rn2)

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

CAS2: Размер=(Слово,Длинное слово)

Описание:

Для команды CAS Операнд-Приемник, определенный исполнительным адресом, сравнивается с Операндом_сравнения  из регистра данных. Если они равны,  содержимое  Приемника заменяется Операндом_замены из другого регистра данных, в противном случае расположенный в памяти Приемник  остается  неизменным,  а  его значение загружается в Операнд_сравнения.

Для команды CAS2 те же операции выполняются над  парами операндов.

Операции выполняются в непрерываемом режиме, с  использованием  цикла обращения к памяти "чтение-модификациязапись". Это позволяет использовать команды для синхронизации различных процессоров. Дополнительная  информация  приведена  в  D.4  ИСПОЛЬЗОВАНИЕ КОМАНД CAS/CAS2 В

СИСТЕМНЫХ ПРОГРАММАХ.

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

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 ¦Размер ¦ 0 ¦ 1 ¦ 1 ¦  Мода       Регистр ¦

+---+---+---+---+---+---T---+---+---+---+---T---T---+---------+

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦    Du     ¦ 0 ¦ 0 ¦ 0 ¦   Dc    ¦

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

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

00 - байт

01 - слово

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

Поле Du определяет регистр данных  с  Операндом_замены, которым следует заменить Приемник  при успешном сравнении.

Поле Dc определяет регистр данных  с  Операндом_сравнения, который следует сравнить с  Приемником,  расположенным в памяти.

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

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

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

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

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

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

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

L----------------+----+---------L----------------+----+--------Формат команды: (парные операнды):

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

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 1 ¦Размер ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1  0  0 ¦

+---+---+---+---+---+---T---+---+---+---+---+---+---+---------+