Краткое описание системы команд микропроцессора MC68020, страница 3

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

¦ORI  ¦ #<данные>,<иа>¦ 8,16,32 ¦ непоср.данные v приемник -> ¦

¦     ¦               ¦         ¦          -> приемник        ¦

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

¦TST  ¦ <иа>          ¦ 8,16,32 ¦  установить коды условий по ¦

¦     ¦               ¦         ¦ результату     источник-0   ¦

L-----+---------------+---------+-----------------------------3.4 ОПЕРАЦИИ СДВИГА И ЦИКЛИЧЕСКОГО СДВИГА

Сдвиги в обоих направлениях выполняются командами  арифметического сдвига ASR, ASL и командами логического сдвига  LSR,  LSL.

Имеются команды циклического сдвига с участием  бита расширения

(команды ROXR, ROXL) и без его участия (команды ROR, ROL).

Все операции сдвигов могут производиться над данными в  регистрах или в памяти.

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

8), либо в регистре (значение которого берется по модулю 64).

Команды сдвига в памяти выполняются только для словных  операндов, при этом сдвиг возможен только на  одну  позицию.  Команда

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

ROR или ROL при величине сдвига, равной 8.

Сводка операций сдвига дана в Таблице 3-4.

Таблица 3-4. Операции сдвига и циклического сдвига

Команда Синтаксис       Размер          Операция операнда        операнда

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

¦ASL  ¦ Dn,Dn         ¦ 8,16,32 ¦ ----¬   ----------¬         ¦

¦     ¦ #<данные>,Dn  ¦ 8,16,32 ¦ ¦X/C<---+ <-----  <-- 0     ¦

¦     ¦ <иа>          ¦   16    ¦ L----   L----------         ¦

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

¦ASR  ¦ Dn,Dn         ¦ 8,16,32 ¦    ----------¬   ----¬      ¦

¦     ¦ #<данные>,Dn  ¦ 8,16,32 ¦ --->  -----> +-->¦X/C¦      ¦

¦     ¦ <иа>          ¦   16    ¦ ¦  L-T--------   L----      ¦

¦     ¦               ¦         ¦ L-----                      ¦

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

¦LSL  ¦ Dn,Dn         ¦ 8,16,32 ¦ ----¬   ----------¬         ¦

¦     ¦ #<данные>,Dn  ¦ 8,16,32 ¦ ¦X/C<---+ <-----  <-- 0     ¦

¦     ¦ <иа>          ¦   16    ¦ L----   L----------         ¦

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

¦LSR  ¦ Dn,Dn         ¦ 8,16,32 ¦     ----------¬   ----¬     ¦

¦     ¦ #<данные>,Dn  ¦ 8,16,32 ¦ 0 -->  -----> +-->¦X/C¦     ¦

¦     ¦ <иа>          ¦   16    ¦     L----------   L----     ¦

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

¦     ¦               ¦         ¦       ---------------¬      ¦

¦ROL  ¦ Dn,Dn         ¦ 8,16,32 ¦ ----¬ ¦ ----------¬  ¦      ¦

¦     ¦ #<данные>,Dn  ¦ 8,16,32 ¦ ¦ C <-+-+ <-----  <---      ¦

¦     ¦ <иа>          ¦   16    ¦ L----   L----------         ¦

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

¦     ¦               ¦         ¦ ---------------¬            ¦

¦ROR  ¦ Dn,Dn         ¦ 8,16,32 ¦ ¦  ----------¬ ¦ ----¬      ¦

¦     ¦ #<данные>,Dn  ¦ 8,16,32 ¦ L-->  -----> +-+>¦ C ¦      ¦

¦     ¦ <иа>          ¦   16    ¦    L----------   L----      ¦

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

¦     ¦               ¦         ¦       --------------------¬ ¦

¦ROXL ¦ Dn,Dn         ¦ 8,16,32 ¦ ----¬ ¦ ----------¬  ----¬¦ ¦

¦     ¦ #<данные>,Dn  ¦ 8,16,32 ¦ ¦ C <-+-+ <-----  <--+ X <- ¦

¦     ¦ <иа>          ¦   16    ¦ L----   L----------  L----  ¦

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

¦     ¦               ¦         ¦ --------------------¬       ¦

¦ROXR ¦ Dn,Dn         ¦ 8,16,32 ¦ ¦----¬  ----------¬ ¦ ----¬ ¦

¦     ¦ #<данные>,Dn  ¦ 8,16,32 ¦ L> X +-->  -----> +-+-> C ¦ ¦

¦     ¦ <иа>          ¦   16    ¦  L----  L----------   L---- ¦

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

¦     ¦               ¦         ¦        ------------¬        ¦

¦     ¦               ¦         ¦--------+-----T-----v-------¬¦

¦SWAP ¦ Dn            ¦   32    ¦¦старшее слово¦младшее слов

¦     ¦               ¦         ¦L-------^-----+-----T--------¦

¦     ¦               ¦         ¦        L------------        ¦

L-----+---------------+---------+-----------------------------3.5 ОПЕРАЦИИ НАД БИТОМ

Команды манипуляции битом выполняют следующие операции: проверка бита (BTST), проверка и установка бита  (BSET),  проверка  и сброс  бита  (BCLR), проверка и инвертирование бита (BCHG). Все операции могут выполняться как в регистрах, так и в памяти; номер бита может задаваться либо непосредственно в команде,  либо в регистре данных. Во всех случаях предполагается, что операнды в регистрах являются 32-битными, операнды в памяти - 8-битными.

Сводка операций манипуляции битом дана в Таблице 3-5 (обозначение Z, фигурирующее в ней, относится ко 2-му биту регистра состояния, называемому битом равенства нулю).

Таблица 3-5. Операции над битом

Команда Синтаксис      Размер          Операция операнда       операнда

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

¦BCHG ¦ Dn,<иа>      ¦  8,32    ¦~(<N бита> приемника) -> Z ->¦

¦     ¦#<данные>,<иа>¦  8,32    ¦      -> бит приемника       ¦