ГЛАВА 3
КРАТКОЕ ОПИСАНИЕ СИСТЕМЫ КОМАНД
Данная глава содержит обзор системы команд микропроцессора
MC68020. Эти команды образуют набор средств для выполнения следующих операций:
пересылка данных арифметические с целыми числами логические сдвиги и циклические сдвиги с битом с полями битов арифметические с двоично-десятичными числами управление ходом выполнения программы управление состоянием системы мультипроцессорные обмены.
Система команд во всем объеме своих возможностей в сочетании с описанными ранее разнообразными способами адресации представляет собой весьма гибкий инструмент разработки программного обеспечения.
В данном разделе будут использоваться следующие обозначения:
An - какой-либо из адресных регистров n, A0-A7
Dn - регистр данных n, D0-D7
Rn - какой-либо из адресных регистров или регистров данных
CCR - регистр кодов условий
(младший байт регистра состояния)
cc - коды условий из SR или CCR
SP - активный указатель стека
USP - указатель стека пользователя
SSP - указатель стека супервизора
DFC - регистр модификации функционального кода приемника
SFC - регистр модификации функционального кода источника
Rc - управляющий регистр (VBR, SFC, DFC,
CACR, CAAR, USP, MSP, ISP)
d - смещение; d16 обозначает 16-битное смещение
<иа> - исполнительный адрес список - список регистров, например, D0-D3
#<данные> - непосредственные данные; целый литерал
{смещение:длина} - описатель битового поля метка - метка в программе на ассемблере
[7] - 7-й бит соответствующего операнда
[31:24] - биты операнда с 31 по 24, т.е. старший байт регистра
X - бит расширения (X) в CCR
N - бит знака (N) в CCR
Z - бит равенства нулю (Z) в CCR
C - бит переноса (C) в CCR
~ - инвертирование; логическое дополнение операнда
& - логическое И
v - логическое ИЛИ
(mod 2) - логическое исключающее ИЛИ
Dc - регистр данных D0-D7, используемый при сравнении
Du - регистр данных D0-D7, используемый при обновлении
Dr, Dq - регистр данных; остаток или частное при делении
Dh, Dl - регистр данных; младшие или старшие 32 бита результата умножения
3.1 ПЕРЕСЫЛКА ДАННЫХ
Команда пересылки (MOVE) в сочетании с различными способами адресации представляет собой основное средство манипуляции с адресами и данными. Команды пересылки данных позволяют передать байт, слово и длинное слово из памяти в память, из памяти в регистр, из регистра в память и из регистра в регистр. Команды пересылки адресов (MOVE или MOVEA) допускают передачу только словных и двухсловных операндов с тем, чтобы гарантировать законность манипуляций с адресами. Помимо общей команды MOVE имеется несколько специальных команд пересылки данных: пересылка группы регистров (MOVEM), пересылка данных периферийных устройств (MOVEP), пересылка непосредственных данных (MOVEQ), обмен регистров (EXG), загрузка исполнительного адреса (LEA), засылка исполнительного адреса в стек (PEA), связь и резервирование областей стека при вызове (LINK) и связь при возврате
(UNLK).
Таблица 3-1. Операции пересылки данных
Команда Синтаксис Размер Операция операнда операнда
-------T--------------T-------------T-------------------------¬
¦EXG ¦ Rn,Rn ¦ 32 ¦ Rn <--> Rn ¦
+------+--------------+-------------+-------------------------+
¦LEA ¦ <иа>,An ¦ 32 ¦ <иа> -> An ¦
+------+--------------+-------------+-------------------------+
¦LINK ¦ An,#<d> ¦ 16,32 ¦ SP-4 -> SP; An ->(SP)¦
¦ ¦ ¦ ¦ SP -> An; SP+d -> SP ¦
+------+--------------+-------------+-------------------------+
¦MOVE ¦ <иа>, <иа> ¦ 8,16,32 ¦ источник -> приемник ¦
¦MOVEA ¦ <иа>,An ¦ 16,32 -> 32¦ ¦
+------+--------------+-------------+-------------------------+
¦MOVEM ¦ список,<иа> ¦ 16,32 ¦ перечисл. регистры -> ¦
¦ ¦ ¦ ¦ -> приемник ¦
¦ ¦ <иа>,список ¦ 16,32 -> 32¦ источник -> ¦
¦ ¦ ¦ ¦ -> перечисл. регистры¦
+------+--------------+-------------+-------------------------+
¦MOVEP ¦ Dn,(d16,An) ¦ 16,32 ¦ Dn[31:24] -> (An+d) ¦
¦ ¦ ¦ ¦ Dn[23:16] -> (An+d+2) ¦
¦ ¦ ¦ ¦ Dn[15:8] -> (An+d+4) ¦
¦ ¦ ¦ ¦ Dn[7:0] -> (An+d+6) ¦
¦ ¦ ¦ ¦ ¦
¦ ¦ (d16,An),Dn ¦ 16,32 ¦ (An+d) -> Dn[31:24] ¦
¦ ¦ ¦ ¦ (An+d+2) -> Dn[23:16] ¦
¦ ¦ ¦ ¦ (An+d+4) -> Dn[15:8] ¦
¦ ¦ ¦ ¦ (An+d+6) -> Dn[7:0] ¦
+------+--------------+-------------+-------------------------+
¦MOVEQ ¦ #<данные>,Dn ¦ 8 -> 32 ¦ непосредственные данные¦
¦ ¦ ¦ ¦ -> приемник ¦
+------+--------------+-------------+-------------------------+
¦PEA ¦ <иа> ¦ 32 ¦ SP-4 -> SP; ¦
¦ ¦ ¦ ¦ <иа> -> (SP) ¦
+------+--------------+-------------+-------------------------+
¦UNLK ¦ An ¦ 32 ¦ An -> SP; (SP) -> An ¦
¦ ¦ ¦ ¦ SP+4 -> SP ¦
L------+--------------+-------------+-------------------------3.2 АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ С ЦЕЛЫМИ ЧИСЛАМИ
Арифметические команды помимо четырех основных: сложения (ADD), вычитания (SUB), умножения (MUL) и деления (DIV), включают в себя также команды арифметического сравнения (CMP, CMPM и
CMP2), очистки (CLR) и обращения знака (NEG). Команды ADD, CMP
и SUB применимы для операций и над данными, и над адресами, причем операции над данными допускают операнды всех размеров.
Адресные операции возможны только над операндами, имеющими размеры, допустимые для адресов (т.е. 16 или 32 бита). Операции очистки и вычитания из нуля применимы к данным любых размеров.
Имеются операции MUL и DIV для операндов со знаком или без знака; при умножении слов получается результат размером в длинное слово, при умножении длинных слов результат занимает длинное слово или квадрослово. При двухсловном делимом и словном делителе под частное и под остаток отводится по одному слову; если делимое занимает длинное слово или квадрослово, а делитель длинное слово, то под частное и под остаток отводится по одному длинному слову.
Арифметика с многократной точностью и со смешанными размерами реализуется с помощью набора команд, обрабатывающих бит расширения. Это следующие команды: расширенное сложение (ADDX) (т.е.
сложение с участием бита расширения), расширенное вычитание
(SUBX), распространение знака (EXT) и расширенное обращение знака (NEGX).
В Таблице 3-2 приведено краткое описание операций целочисленной арифметики.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.