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

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

¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦       ¦Исполнительный адрес ¦

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 0 ¦Размер ¦ Мода       Регистр  ¦

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

¦А/Д¦  Регистр  ¦НП ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0¦

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

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

00 - байт

01 - слово

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

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

Источника или Приемника в адресном пространстве, определяемом соответствующим регистром модификации функционального кода (SFC или DFC). При этом допустимы только способы адресации изменяемой памяти:

-----------------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----------------+----+--------Поле А/Д задает тип регистра общего назначения:

0 - регистр данных.

1 - регистр адреса.

Поле Регистра задает номер регистра.

Поле НП  задает направление пересылки:

0 - из <иа> в регистр общего назначения.

1 - из регистра общего назначения в <иа>.

ЗАМЕЧАНИЯ:

Операции

MOVES.x An,(An)+  или  MOVES.x An,-(An)

где  для  адресации  Источника  и Приемника использован один и тот же адресный регистр, неопределены. В  память будет записано неопределенное значение.

В случае процессора модели MC68020 в память будет записано инкрементированное или декрементированное значение регистра An. Для последующих моделей это не  гарантируется.

MULS             Умножение со знаком               MULS

------------------------------------------------------Операция:       Источник * Приемник  > Приемник

Синтаксис:      MULS.W  <иа>,Dn        16 X 16  > 32

MULS.L  <иа>,Dl        32 X 32  > 32

MULS.L  <иа>,Dh:Dl     32 X 32  > 64

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

Описание:

Приемник умножается  на  Источник, результат  запоминается в Приемнике. Используется арифметика  целых  чисел со знаком.

Команда позволяет работать со словами и с длинными словами.  При работе со словами оба сомножителя имеют формат слова, результат имеет  формат  длинного  слова.  В

случае, если сомножитель размещен в регистре, используется младшее слово регистра,  значение  старшего  слова игнорируется.  Все  32 бита произведения запоминаются в регистре данных-Приемнике.

При работе с длинными  словами  оба  сомножителя  имеют формат  длинного слова, результат имеет формат длинного слова или квадрослова. Результат в формате слова представляет собой младшие  32  бита  результата  в  формате квадрослова.

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

X   N   Z   V   C

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

¦ - ¦ * ¦ * ¦ 0 ¦ 0 ¦

L---+---+---+---+---N       1, если результат отрицателен; иначе 0

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

V       всегда 0

C       всегда 0

X       не изменяется

ЗАМЕЧАНИЕ:

Переполнение  (V = 1) может возникнуть только в случае, если перемножаются 32-битные сомножители,  а  результат определен как 32-битный. Переполнение происходит тогда, когда старшие 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----------------------¬

¦   ¦   ¦   ¦   ¦           ¦   ¦   ¦   ¦ Исполнительный адрес ¦

¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦Регистр Dn ¦ 1 ¦ 1 ¦ 1 ¦  Мода       Регистр  ¦

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

Поле регистра Dn определяет Приемник - любой из 8 регистров данных.

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

Источника. Допустимы только способы адресации данных:

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

¦Способ адресации¦Мода¦Регист𠦦Способ адресации¦Мода¦Регистр ¦

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

¦       Dn       ¦000 ¦ном.Dn  ¦¦    (xxx).W     ¦111 ¦  000   ¦

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

¦       An       ¦ -  ¦   -    ¦¦    (xxx).L     ¦111 ¦  001   ¦

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

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

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

¦      (An)+     ¦011 ¦ном.An  ¦¦                ¦    ¦        ¦