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¦ 0 ¦ 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 ¦ 0 ¦ 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----------------+----+--------Bcc Условный переход Bcc
----------------------------------------------------------Операция: Если (условие истинно) то PC + d > PC
Синтаксис: Bcc <метка>
Атрибуты: Размер=(Байт,Слово,Длинное слово)
Описание:
Если указанное условие истинно, то выполнение программы продолжается с адреса (РС) + смещение. Смещение представляет собой относительное расстояние в байтах, представленное в двоично-дополнительном коде, при этом текущее значение РС равняется адресу команды плюс 2. Если поле 8-битного смещения в команде равно 0, используется
16-битное смещение из слова, следующего за командой.
Если поле 8-битного смещения в команде равно $FF, используется 32-битное смещение из длинного слова, следующего за командой.
"cc" определяет условие перехода:
----T-------------------------T----T-------------------¬
¦cc ¦ Название условия ¦Код ¦ Определение ¦
+---+-------------------------+----+-------------------+
¦CC ¦ Carry Clear ¦0100¦ ~C ¦
¦ ¦ переноса не было ¦ ¦ ¦
¦CS ¦ Carry Set ¦0101¦ C ¦
¦ ¦ был перенос ¦ ¦ ¦
¦EQ ¦ EQual ¦0111¦ Z ¦
¦ ¦ равно ¦ ¦ ¦
¦GE ¦ Greater or Equal ¦1100¦ (N & V)v(~N &~V) ¦
¦ ¦ больше или равно ¦ ¦ ¦
¦GT ¦ Greater ¦1110¦(N&V&~Z)v(~N&~V&~Z)¦
¦ ¦ больше ¦ ¦ ¦
¦HI ¦ HIgh ¦0010¦ ~C & ~Z ¦
¦ ¦ выше ¦ ¦ ¦
¦LE ¦ Less or Equal ¦1111¦Z v (N&~V) v (~N&V)¦
¦ ¦ меньше или равно ¦ ¦ ¦
¦LS ¦ Low or Same ¦0011¦ C v Z ¦
¦ ¦ не выше ¦ ¦ ¦
¦LT ¦ Less ¦1101¦(N & ~V) v (~N & V)¦
¦ ¦ меньше ¦ ¦ ¦
¦MI ¦ MInus ¦1011¦ N ¦
¦ ¦ минус ¦ ¦ ¦
¦NE ¦ Not Equal ¦0110¦ ~Z ¦
¦ ¦ не равно ¦ ¦ ¦
¦PL ¦ PLus ¦1010¦ ~N ¦
¦ ¦ плюс ¦ ¦ ¦
¦VC ¦ oVerflow Clear ¦1000¦ ~V ¦
¦ ¦ переполнения не было ¦ ¦ ¦
¦VS ¦ oVerflow Set ¦1001¦ V ¦
¦ ¦ было переполнение ¦ ¦ ¦
L---+-------------------------+----+-------------------Коды условия: не изменяются.
Формат команды:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.