--------------------------------¬
¦ ¦
------¬ ¦ -------------¬ ------¬ ¦
ROXL: ¦ C <--+--+ Операнд <-----+ X <---L------ L------------- L-----В случае команды ROXR операнд циклически сдвигается вправо на <количество_позиций>. Вытесняемые младшие биты попадают одновременно в биты переноса (С) и расширения (Х) кода условия. Предыдущие значения бита расширения поступают в старшие биты операнда.
-------------------------------¬
¦ ¦
¦ ------¬ -------------¬ ¦ ------¬
ROXR: L---> X +----> Операнд +--+---> C ¦
L------ L------------- L-----Коды условия:
X N Z V C
----T---T---T---T---¬
¦ - ¦ * ¦ * ¦ 0 ¦ * ¦
L---+---+---+---+---N 1, если старший бит результата равен 1; иначе 0.
Z 1, если результат равен нулю; иначе 0.
V всегда 0.
C равен последнему вытесненному биту операнда. При
<количестве_позиций>=0 равен биту X.
X равен последнему вытесненному биту операнда.
При <количестве_позиций>=0 не меняется.
Формат команды (для циклического сдвига регистра):
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 ¦ 1 ¦ 1 ¦ 0 ¦Рег/количе-¦L/R¦Размер ¦i/r¦ 1 ¦ 0 ¦ Регистр ¦
¦ ¦ ¦ ¦ ¦ство_позиц ¦ ¦ ¦ ¦ ¦ ¦ ¦
L---+---+---+---+-----------+---+-------+---+---+---+---------Поля команды (для циклического сдвига регистра):
Поле Рег/количество_позиц определяет <количество_позиций> или регистр, содержащий значение <количества_позиций>:
Если i/r=0, то количество_позиций явно указано в данном поле. Значения 0,1,2,...7 представляют величину циклического сдвига 8,1,2,...7 соответственно.
Если i/r=1, количество_позиций содержится в регистре данных, указанном в данном поле. Значение регистра берется по модулю 64.
Поле L/R определяет направление циклического сдвига:
0 - циклический сдвиг вправо.
1 - циклический сдвиг влево.
Поле Размера определяет размер операндов:
00 - байт.
01 - слово.
10 - длинное слово.
Поле i/r Если i/r = 0, количество_позиций задано непосредственно в команде.
Если i/r = 1, количество_позиций задано в регистре.
Поле Регистра определяет Приемник - циклически сдвигаемый регистр данных.
Формат команды (для циклического сдвига операнда в памяти):
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 ¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 0 ¦L/R¦ 1 ¦ 1 ¦ Мода Регистр ¦
L---+---+---+---+---+---+---+---+---+---+-----------+---------Поля команды (для циклического сдвига операнда в памяти):
Поле L/R определяет направление циклического сдвига:
0 - циклический сдвиг вправо.
1 - циклический сдвиг влево.
Поле Исполнительного адреса определяет способ адресации
Приемника. Допустимы только способы адресации изменяемой памяти:
-----------------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----------------+----+--------RTD Возврат и освобождение области параметров RTD
----------------------------------------------------Операция: (SP) > PC; SP + 4 + d > SP
Синтаксис: RTD #<смещение>
Атрибуты: Размер не используется
Описание:
Значение программного счетчика восстанавливается из стека, его предыдущее значение теряется. Затем знак 16битного смещения распространяется до 32 бит и полученное значение прибавляется к значению указателя стека.
Коды условия: не изменяются.
Формат команды:
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 ¦ 1 ¦ 0 ¦ 0¦
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--+
¦ Смещение ¦
L--------------------------------------------------------------Поля команды:
Поле Смещения задает целое в двоично-дополнительном коде, которое после распространения знака должно быть прибавлено к указателю стека.
RTE Возврат из обработки исключения RTE
(привилегированная команда)
--------------------------------------------------------Операция: Если режим супервизора, то (SP) >SR; SP+2 >SP; (SP) >PC; SP+4 >SP;
восстановить состояние и освободить стек в соответствии с (SP).
иначе TRAP
Синтаксис: RTE
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.