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

¦   (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----------------+----+--------Поле  Непосредственных  данных (данных, непосредственно следующих за операционным словом):

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

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

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

ANDI     Конъюнкция непосредственных данных      ANDI

TO CCR             с кодом условия               TO CCR

------------------------------------------------------Операция:       Непосредственные данные & CCR  > CCR

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

Атрибуты:       Размер=(Байт)

Описание:

Вычисляется конъюнкция Непосредственных данных и  кодов условия;  результат  помещается в младший байт регистра состояния.

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

X   N   Z   V   C

----T---T---T---T---¬

¦ * ¦ * ¦ * ¦ * ¦ * ¦

L---+---+---+---+---N   0, если 3-й бит <данных> равен 0; иначе не меняется

Z   0, если 2-й бит <данных> равен 0; иначе не меняется

V   0, если 1-й бит <данных> равен 0; иначе не меняется

C   0, если 0-й бит <данных> равен 0; иначе не меняется

X   0, если 4-й бит <данных> равен 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---T---T---T---T---T--¬

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 1 ¦ 0 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 0¦

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

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦   Байт данных (8 бит)        ¦

L---+---+---+---+---+---+---+---+------------------------------ANDI  Конъюнкция непосредственных данных с регистром   ANDI

TO SR    состояния (привилегированная команда)        TO SR

----------------------------------------------------------Операция:       Если режим супервизора, то   Источник & SR  > SR, иначе TRAP

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

Атрибуты:       Размер=(Слово)

Описание:

Вычисляется конъюнкция Непосредственных данных с содержимым регистра состояния; результат  помещается  в  регистр состояния. Подвержены изменениям все биты регистра состояния.

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

X   N   Z   V   C

----T---T---T---T---¬

¦ * ¦ * ¦ * ¦ * ¦ * ¦

L---+---+---+---+---N   0, если 3-й бит <данных> равен 0; иначе не меняется

Z   0, если 2-й бит <данных> равен 0; иначе не меняется

V   0, если 1-й бит <данных> равен 0; иначе не меняется

C   0, если 0-й бит <данных> равен 0; иначе не меняется

X   0, если 4-й бит <данных> равен 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---T---T---T---T---T--¬

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦ 0¦

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

¦                     Слово данных (16 бит)                    ¦

L--------------------------------------------------------------ASL , ASR          Арифметический сдвиг         ASL , ASR

--------------------------------------------------------Операция:       Приемник сдвигается_на <количество_позиций>  >

> Приемник

Синтаксис:      ASd Dx,Dy

ASd #<данные>,Dy

ASd <иа>

где d - направление, R или L

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

Описание:

Биты Приемника  арифметически  сдвигаются  в  указанном направлении  (L - влево, R - вправо). Бит переноса (код условия С) устанавливается равным последнему  вытесненному при сдвиге биту операнда. При сдвиге регистра данных  <количество_позиций> задается одним из двух способов:

1. Непосредственно в команде, в диапазоне 1 - 8.

2. В регистре данных (содержимое  регистра  берется  по модулю 64).

Размер  операндов - байт, слово и длинное слово. Содержимое памяти может быть сдвинуто только на 1 бит,  размер операнда в этом случае есть слово.

В случае команды ASL операнд сдвигается влево на <количество_позиций>. Вытесняемые старшие биты попадают  одновременно  в  биты  переноса и расширения (С и Х) кода условия, младшие биты заполняются нулями. В бите  переполнения V отмечается, случалась ли перемена знака операнда во время сдвига.

------¬     -------------¬      ------¬

¦  C  <--T--+  Операнд   <------+  0  ¦

L------  ¦  L-------------      L-----ASL:               ¦

------¬  ¦

¦  X  <--L-----В  случае команды ASR операнд сдвигается вправо на <количество_позиций>.  Вытесняемые  младшие  биты попадают одновременно в биты С и  Х  кодов  условия.  Бит  знака

(MSB)  воспроизводится  в  освобождаемых  старших битах операнда.

------T------------¬      ------¬

----> MSB ¦  Операнд   +--T--->  C  ¦

¦   L--T--+-------------  ¦   L-----ASR:  L-------                  ¦

¦   ------¬

L--->  X  ¦

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

X   N   Z   V   C

----T---T---T---T---¬

¦ * ¦ * ¦ * ¦ * ¦ * ¦

L---+---+---+---+---N       1, если старший бит результата равен 1; иначе 0

Z       1, если результат нулевой; иначе 0

V       1,  если старший бит результата изменялся в какой-либо момент при сдвиге; иначе 0

C       равен последнему вытесненному биту операнда. При

<количестве_позиций>=0 равен 0

Х       равен последнему вытесненному биту операнда. При

<количестве_позиций>=0 не изменяется.

Формат команды для сдвига регистра: