+----------------+----+--------++----------------+----+--------+
¦ (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---+---+---+---+---+---+---+---------+
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.