Motorola MC68HC705C8

Команды с индексной адресацией с 8-разрядным смещением имеют длину два байта, что позволяет обращаться к операндам в пределах первых 511 байт. Процессор складывает беззнаковый байт в индексном регистре с беззнаковым байтом, следующим за кодом операции. Полученная сумма является адресом операнда. Эта команда позволяет адресовать операнд в пределах от $0000 до $01FE. Индексную адресацию с 8-разрядным смещением удобно применять для выбора k-го элемента из n элементов таблицы. Таблица может начинаться с любого адреса в пределах первых 256 байт и занимать адреса до $01FE. Число k обычно записывается в индексный регистр. Адресом начала таблицы является байт, следующий за кодом операции. В Таблице 1-5 приведен список команд, использующих индексную адресацию с 8-разрядным смещением.

Индексную адресацию с 16-разрядным смещением удобно использовать для выбора k-го элемента в таблице из n элементов в любой точке адресного пространства. Как и в случае прямой и расширенной адресации, ассемблер фирмы Motorola определяет автоматически наиболее короткую форму индексной адресации. В Таблице 1-5 приведен список команд, которые используют индексную адресацию с 16-разрядным смещением.

Относительная адресация используется только командами перехода и битового сравнения. ЦП вычисляет адрес перехода посредством сложения байта, следующего за кодом операции, с содержимым программного счетчика, если выполняется условие перехода. Если условие перехода не выполняется, процессор переходит на выполнение следующей команды. Чтобы определить направление перехода, смещение является знаковой величиной, дополнение байта до двух дает переход в пределах от -127 до 128 байт от адреса команды, следующей за командой перехода. При использовании ассемблера фирмы Motorola программисту не требуется вычислять смещение, потому что ассемблер вычисляет требуемое смещение и проверяет длину перехода на допустимость. В Таблице 1-6 перечислены команды, которые используют относительную адресацию.

Таблица 1-6. Команды, использующие относительную адресацию.

Команда

Мнемоника

Перейти, если сброшен флаг переноса

BCC

Перейти, если флаг переноса установлен

BCS

Перейти, если операнды равны

BEQ

Перейти, если сброшен перенос из младшей тетрады

BHCC

Перейти, если установлен флаг переноса из младшей тетрады

BHCS

Перейти, если больше

BHI

Перейти, если больше или равно

BHS

Перейти, если активизирован вход запроса прерывания

BIH

Перейти, если не активизирован вход запроса прерывания

BIL

Перейти, если меньше

BLO

Перейти, если меньше или равно

BLS

Перейти, если бит маскирования прерывания сброшен

BMC

Перейти, если результат отрицательный

BMI

Перейти, если бит маскирования прерывания установлен

BMS

Перейти, если не равно

BNE

Перейти, если результат положительный

BPL

Безусловный переход

BRA

Перейти, если сброшен бит n

BRCLR

Перейти, если установлен бит n

BRSET

Нет перехода

BRN

Вызов подпрограммы

BSR

1.5. Набор команд.

Команды процессора можно разделить на следующие группы:

команды пересылки данных

команды передачи управления

арифметические и логические команды, битовые операции.

Рассмотрим работу команд каждой группы подробнее. При этом будем использовать следующие условные знаки;

Операнды:

()-содержимое регистра или ячейки памяти

-загружается из

-извлекается из стека

-загружается в стек

* -логическое умножение (И)

+-арифметическое сложение (кроме тех случаев, где используется как ИЛИ в логических операциях)

х-умножение

\-отрицание

Регистры:

AC -аккумулятор

CCR -регистр признаков

Х -индексный регистр

РС -программный счетчик

РСН -старший байт программного счетчика

PCL -младший байт программного счетчика

SP -указатель стека

Память и адресация:

М -ячейка памяти либо ее содержимое в зависимости от режима адресации

Rel -относительное смещение

Биты регистра признаков:

H, I, N, C, Z-в соответствии с главой 1.3

Состояние определенных бит до выполнения операции (n=7, 6, . , 0):

An -бит n аккумулятора

Xn -бит n индексного регистра

Mn-бит n ячейки памяти

Состояние определенных бит после выполнения операции:

Rn-бит n результата

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

Команды пересылки данных.

LDA Загрузить аккумулятор содержимым ячейки памяти.

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

N R7 .

Устанавливается, если установлен старший бит аккумулятора, в противном случае сбрасывается.

Z R7\*R6\*R5\*R4\*R3\*R2\*R1\*R0\

Устанавливается, если в аккумуляторе $00, иначе сбрасывается.

LDX Загрузить индексный регистр содержимым ячейки памяти.


Страница: