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

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

¦ 0 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦ N_точки ¦

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

Поле N_точки определяет номер точки останова, для которой процессор должен запросить соответствующее  операционное слово.

BRA             Безусловный  переход                 BRA

-------------------------------------------------------Операция:       PC + d  > PC

Синтаксис:      BRA  <метка>

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

Описание:

Выполнение  программы продолжается с адреса (РС) + смещение. Смещение представляет собой относительное  расстояние  в байтах, представленное в двоично-дополнительном коде, при этом текущее значение РС равняется адресу команды плюс 2. Если поле 8-битного смещения в  команде равно 0, используется 16-битное смещение из слова, следующего за командой. Если поле 8-битного смещения в команде  равно  $FF,  используется  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-----------------------------¬

¦ 0 ¦ 1 ¦ 1 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦     8-битное  смещение      ¦

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

¦     16-битное  смещение,  если 8-битное  смещение = $00     ¦

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

¦     32-битное  смещение,  если 8-битное  смещение = $FF     ¦

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

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

16-битное смещение - обеспечивает смещение, не представимое  в 8 битах. Используется в случае, если 8-битное смещение = $00.

32-битное смещение - обеспечивает смещение, не представимое в 16 битах. Используется в случае, если 8-битное смещение = $FF.

ЗАМЕЧАНИЕ:

Невозможен "короткий" переход на  непосредственно  следующую  команду (в этом случае 8-битное смещение равнялось бы нулю, задавая тем самым "длинный" переход).

BSET         Проверка и установка бита             BSET

------------------------------------------------------Операция:       ~(<номер бита> В Приемнике)  > Z

1  > <номер бита> В Приемнике

Синтаксис:      BSET Dn,<иа>

BSET #<данные>,<иа>

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

Описание:

Указанный бит в Приемнике проверяется и  его  состояние используется  для  формирования  кода  условия Z. После проверки указанный бит Приемника устанавливается  в  1.

Если  Приемником является регистр данных, нумерация битов ведется по модулю 32, что  обеспечивает  доступ  ко всем  битам регистра. Если Приемником является байт памяти, он считывается, указанный бит в нем преобразуется

(используется нумерация битов по модулю 8), после  чего байт  записывается обратно. Во всех случаях бит номер 0

соответствует младшему биту Приемника. Номер бита может задаваться двумя различными способами:

1. Непосредственно  -  номер  бита содержится во втором слове команды.

2. В регистре - номер бита содержится в  регистре  данных, заданном в команде.

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

X   N   Z   V   C

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

¦ - ¦ - ¦ * ¦ - ¦ - ¦

L---+---+---+---+---N       не изменяется

Z       1, если проверенный бит равен 0; иначе 0

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

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

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

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

¦ 0 ¦ 0 ¦ 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  ¦¦   #<данные>    ¦ -  ¦   -    ¦

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

¦      (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----------------+----+--------(*) - только длинный операнд; в остальных случаях операнды только байтовые.

Формат команды (при номере бита, статически задаваемом в команде):