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

¦([bd,An,Xn],od) ¦110 ¦ном.An  ¦¦ ([bd,PC,Xn],od)¦ -  ¦   -    ¦

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

¦([bd,An],Xn,od) ¦110 ¦ном.An  ¦¦ ([bd,PC],Xn,od)¦ -  ¦   -    ¦

L----------------+----+---------L----------------+----+--------Поле CC определяет  сопроцессорное  условие,  требующее проверки. Это поле передается сопроцессору, который  в свою очередь выдает примитивы для  ЦП  при  выполнении данной команды.

cpTRAPcc   Ловушка по сопроцессорному условию  cpTRAPcc

------------------------------------------------------Операция:       Если сопроцессорное условие истинно, то TRAP

Синтаксис:      cpTRAPcc

cpTRAPcc #<данные>

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

Описание:

Если  указанное сопроцессорное условие истинно, процессор возбуждает обработку исключения. Генерируемый номер вектора соответствует исключению по  команде  cpTRAPcc.

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

Коды условия: не изменяются.

Формат команды:

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

¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦Сопроцессор¦ 0 ¦ 0 ¦ 1 ¦ 1 ¦ 1 ¦ 1 ¦  Мода   ¦

¦   ¦   ¦   ¦   ¦           ¦   ¦   ¦   ¦   ¦   ¦   ¦операции ¦

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

¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦         СС          ¦

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

¦              Необязательные слова расширения                ¦

¦             (определяются типом сопроцессора)               ¦

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

¦                Необязательный 16-битный  или                ¦

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

¦                    32-битный  операнд                       ¦

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

Поле Сопроцессора идентифицирует  сопроцессор,  который должен выполнить данную операцию.

Поле Моды операции задает формат команды:

010 - 1 слово операнда

011 - 2 слова операнда

100 - слов операнда нет.

Поле CC определяет  сопроцессорное  условие,  требующее проверки. Это поле передается сопроцессору, который  в свою очередь выдает примитивы для  ЦП  при  выполнении данной команды.

DBcc Проверка условия с учетом кратности и переход DBcc

------------------------------------------------------Операция:       Если  условие ложно, то    (Dn - 1  > Dn;

Если  Dn   -1

то    PC + d  > PC)

Синтаксис:      DBcc  Dn,<метка>

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

Описание:

Команда  представляет собой средство организации циклов и имеет три параметра: условие, счетчик  (регистр  данных)  и смещение. Вначале проверяется условие, понимаемое, как условие прекращения цикла: если оно выполнено, никаких действий не производится.  В  противном  случае младшие 16 бит регистра-счетчика уменьшаются на 1. Если результат равен -1, число повторений исчерпано и выполнение продолжается со следующей команды. Если результат не  равен -1, выполнение продолжается с адреса, определяемого как текущее значение РС плюс 16-битное смещение с распространенным знаком. Значение РС равно адресу текущей команды плюс 2.

"cc" определяет условие перехода:

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

¦cc ¦     Название условия    ¦Код ¦    Определение    ¦

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

¦CC ¦ Carry Clear             ¦0100¦       ~C          ¦

¦   ¦   переноса не было      ¦    ¦                   ¦

¦CS ¦ Carry Set               ¦0101¦        C          ¦

¦   ¦   был перенос           ¦    ¦                   ¦

¦EQ ¦ EQual                   ¦0111¦        Z          ¦

¦   ¦   равно                 ¦    ¦                   ¦

¦F  ¦ False                   ¦0001¦        0          ¦

¦   ¦   тождественно ложно    ¦    ¦                   ¦

¦GE ¦ Greater or Equal        ¦1100¦ (N & V)v(~N &~V)  ¦

¦   ¦   больше или равно      ¦    ¦                   ¦

¦GT ¦ Greater                 ¦1110¦(N&V&~Z)v(~N&~V&~Z)¦

¦   ¦   больше                ¦    ¦                   ¦

¦HI ¦ HIgh                    ¦0010¦     ~C & ~Z       ¦

¦   ¦   выше                  ¦    ¦                   ¦

¦LE ¦ Less or Equal           ¦1111¦Z v (N&~V) v (~N&V)¦

¦   ¦   меньше или равно      ¦    ¦                   ¦

¦LS ¦ Low or Same             ¦0011¦      C v Z        ¦

¦   ¦   не выше               ¦    ¦                   ¦

¦LT ¦ Less                    ¦1101¦(N & ~V) v (~N & V)¦

¦   ¦   меньше                ¦    ¦                   ¦

¦MI ¦ MInus                   ¦1011¦        N          ¦

¦   ¦   минус                 ¦    ¦                   ¦

¦NE ¦ Not Equal               ¦0110¦       ~Z          ¦

¦   ¦   не равно              ¦    ¦                   ¦

¦PL ¦ PLus                    ¦1010¦       ~N          ¦

¦   ¦   плюс                  ¦    ¦                   ¦

¦T  ¦ True                    ¦0000¦        1          ¦

¦   ¦   тождественно истинно  ¦    ¦                   ¦

¦VC ¦ oVerflow Clear          ¦1000¦       ~V          ¦

¦   ¦   переполнения не было  ¦    ¦                   ¦

¦VS ¦ oVerflow Set            ¦1001¦        V          ¦

¦   ¦   было переполнение     ¦    ¦                   ¦

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