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

Команда допускает использование способов адресации трех классов: управляющих операндов, с предекрементированием и с постинкрементированием.

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

и кончая регистром данных 7 и затем начиная с  регистра адреса 0 и кончая регистром адреса 7.

Если  задано предекрементирование исполнительного адреса, допускается только пересылка  регистров  в  память.

Пересылка  выполняется, начиная с указанного адреса минус размер операнда (2 или 4) и далее в сторону меньших адресов. Регистры запоминаются в следующем порядке: начиная с регистра адреса 7 и кончая регистром адреса 0 и затем, начиная с регистра данных 7 и  кончая  регистром данных 0. По завершении операции пересылки регистр, адресующий  Приемник,  содержит адрес последнего слова, в которое была произведена запись.

Если задано постинкрементирование исполнительного адреса, допускается только пересылка из памяти в  регистры.

Пересылка  выполняется,  начиная  с указанного адреса и далее в сторону больших адресов. Порядок пересылки  регистров тот же, что и при способе адресации управляющих операндов.  По  завершении  операции пересылки регистр, адресующий Источник, содержит адрес последнего  пересылавшегося слова плюс размер операнда (2 или 4).

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

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

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 ¦ 1 ¦ 0 ¦ 0 ¦ 1 ¦НП ¦ 0 ¦ 0 ¦ 1 ¦Рзм¦  Мода       Регистр ¦

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

¦                   Маска группы регистров                    ¦

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

Поле НП указывает направление пересылки:

0 - из регистров в память.

1 - из памяти в регистры.

Поле  Рзм определяет разрядность части регистра, участвующей в пересылке:

0 - слово.

1 - длинное слово.

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

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

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

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

¦       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----------------+----+--------Для  пересылки  из  памяти в регистры допустимы только способы адресации управляющих операндов и адресации  с постинкрементированием:

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

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

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

¦       Dn       ¦ -  ¦   -    ¦¦    (xxx).W     ¦111 ¦  000   ¦

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

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

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

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

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

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

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

¦     -(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----------------+----+--------Поле  Маски группы регистров определяет, какие регистры участвуют в пересылке. Самый младший бит соответствует первому из пересылаемых  регистров,  самый  старший  последнему. Для способов адресации управляющих операндов  и  адресации с постинкрементированием установлено следующее соответствие битов маски регистрам:

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