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

15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0

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

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

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

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

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

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

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

Поле Кода - одно из 14 значений, описанных выше.

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

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

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

ЗАМЕЧАНИЕ:

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

BCHG         Проверка и изменение бита          BCHG

---------------------------------------------------Операция:

~(<номер бита> В Приемнике)  > Z

~(<номер бита> В Приемнике)  > <номер бита> В Приемнике

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

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

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

Описание:

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

После проверки указанный бит  Приемника  инвертируется.

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

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

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

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

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

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

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦         Номер бита           ¦

L---+---+---+---+---+---+---+---+------------------------------Поля команды   (при номере бита, статически задаваемом в команде):

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

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

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

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

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

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

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

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

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