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

¦ 0 ¦ Регистр Dq¦ 1 ¦Рзм¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦Регистр Dr¦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

¦     -(An)      ¦100 ¦ном.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----------------+----+--------Поле регистра Dq определяет Приемник - любой из 8 регистров данных. Из него извлекаются  младшие  32  бита делимого и в него загружается 32-битное частное.

Поле Рзм определяет 32- или 64-битное деление:

0 - 32-битное делимое располагается в регистре Dq.

1 - 64-битное делимое располагается в регистрах Dr:Dq.

Поле регистра Dr после деления содержит 32-битный остаток (если Dr=Dq, Dr содержит частное). Если Рзм=1, поле также определяет регистр данных, содержащий старшие

32 бита делимого.

ЗАМЕЧАНИЯ:

Если частное не может быть  представлено  в  формате

32-битного целого со знаком, происходит переполнение.

В Ассемблере ОС UNIX мнемоника DIVSL.L изображается как

TDIVS.L.

DIVU                  Деление без знака                DIVU

DIVUL                                                 DIVUL

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

Синтаксис:      DIVU.W  <иа>,Dn        32/16  > 16r:16q

DIVU.L  <иа>,Dq        32/32  > 32q

DIVU.L  <иа>,Dr:Dq     64/32  > 32r:32q

DIVUL.L <иа>,Dr:Dq     32/32  > 32r:32q

(q - делимое и частное, r - остаток)

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

Описание:

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

Команда  имеет 4 варианта: один для работы со словами и

3 для работы с длинными словами. При работе со  словами

32-битный  результат  состоит  из  16-битного  частного

(младшее слово результата) и 16-битного остатка  (старшее слово).

При работе с длинными словами по первому варианту  Приемник и Источник являются длинными словами. Результат длинное частное, остаток отбрасывается.

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

При работе с длинными словами по третьему варианту Приемник  и  Источник  являются длинными словами.  Результат - длинное частное и длинный остаток.

При выполнении команды могут возникнуть 2 особых случая:

1. Деление на ноль инициировало TRAP.

2. До завершения команды было обнаружено  переполнение.

В этом случае переполнение отмечается в  коде  условия, а операнды не изменяются.

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

X   N   Z   V   C

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

¦ - ¦ * ¦ * ¦ * ¦ 0 ¦

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

0. При переполнении и делении на  0  бит  не определен.

Z       1, если  частное равно нулю; иначе 0. При переполнении и делении на 0 бит не определен.

V       1, если  при  делении  произошло  переполнение;

иначе 0.

C       всегда 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----------------------¬

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

¦ 1 ¦ 0 ¦ 0 ¦ 0 ¦Регистр Dn ¦ 0 ¦ 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  ¦¦                ¦    ¦        ¦

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

¦     -(An)      ¦100 ¦ном.An  ¦¦                ¦    ¦        ¦

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