Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / motorola / 68LAB1.DOC
Скачиваний:
29
Добавлен:
16.04.2013
Размер:
249.25 Кб
Скачать

Операторы в выражениях.

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

Операторы:

()Парные скобки

-Инверсия знака (дополнение до двух)

~ Двоичное НЕ (дополнение до 1)

<< Сдвиг влево (x<<y обеспечивает сдвиг x влево на y бит с нулевым заполнением)

>>Сдвиг вправо

&Двоичное И

! Двоичное ИЛИ

* Умножение

/ Целочисленное деление

\ Модуль (x\y обеспечивает остаток при делении x на y)

+Сложение

-Вычитание

Определение методов адресации.

Процессор МС68000 обеспечивает 12 основных методов адресации. Форматы, используемые для определения этих методов в языке ассемблера, рассматриваются в таблице ниже. Для описания форматов используемых методов адресации операндов используются следующие символы :

Dn регистр данных

An регистр адреса (SP можно использовать вместо A7)

Xn регистр данных или адреса

.s код размера индексного регистра (.W или .L , по умолчанию .W)

<ex8> выражение в пределах 8-битовой величины (в случае отсутствия интерпретируется как 0)

<ex16> выражение в пределах 16-битовой величины (в случае отсутствия интерпретируется как 0)

<ex> любое выражение

PC программный счетчик

Форматы методов адресации

Метод адресации

Формат ассемблера

Прямая регистровая адресация по регистру данных

Dn

Прямая регистровая адресация по регистру адреса

An

Косвенная регистровая адресация

(An)

Косвенная регистровая адресация с предекрементом

-(An)

Косвенная регистровая адресация с постинкрементом

(An)+

Косвенная регистровая адресация со смещением

<ex16>(An)

Индексная адресация

<ex8>(An,Xn.s)

Абсолютная короткая или длинная адресация

<ex>

Относительная адресация со смещением

<ex16>(PC)

Относительная индексная адресация

<ex8>(PC,Xn.s)

Непосредственная адресация

#<ex>

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

SR=регистр статуса

CCR=байт флагов регистра статуса

USP=указатель стека пользователя

Особенности записи в ассемблере некоторых команд Команды переходов.

Команды переходов (Bcc, BRA и BSR) - единственные команды, использующие код длины перехода ".S". Этот суффикс определяет короткий переход в диапазоне от -128 до +127 байт. Если точка перехода находится вне этого диапазона, то выдается сообщение об ошибке. В случае использования кода длины ".L" переход может осуществляться в пределах от -32768 до +32767 байт. Если код длины не указывается, то ассемблер будет использовать, если возможно, короткий переход, в противном случае будет использоваться длинный переход.

Команда movem.

Команда MOVEM, которая используется для сохранения и восстановления набора регистров, может иметь две формы:

MOVEM <список регистров> <эффективный адрес>

MOVEM <эффективный адрес> <список регистров>

Список регистров может быть записан в форме явного списка регистров. Однако, если один и тот же список регистров используется в программе много раз, то для его обозначения в качестве имени может использоваться директива REG (см. описанние директивы REG ниже). Например, имя списка регистров WORKSET может определяется директивой REG следующим образом:

WORKSET REG A0-A4/D1/D2

При этом две следующие команды выполняют одинаковые функции:

MOVEM.L WORKSET,-(SP)

MOVEM.L A0-A4/D1/D2,-(SP)

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

Соседние файлы в папке motorola