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

Страницы работы

Содержание работы

ГЛАВА 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  приведено краткое описание операций  целочисленной арифметики.

Похожие материалы

Информация о работе