Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
91
Добавлен:
12.03.2015
Размер:
1.3 Mб
Скачать

3.2 Прямая адресация

При прямой адресации программный счетчик PC принимает значение, указанное в теле команды, при этом происходит ветвление программы.

Данный вид адресации используется при выполнении команд безусловного перехода или вызова подпрограммы, BR !addr16 , CALL !addr16 и CALLF !addr11 соответственно. Команды CALL !addr16 и BR !addr16 можно использовать для перехода к любому адресу из всего адресного пространства. Команда CALLF !addr11 может использоваться в пространстве 0x0800 – 0x0FFF. Схематически адресация представлена на рисунках 12 и 13.

Рисунок 12 – прямая адресация при выполнении команд BR !addr16 , CALL !addr16

Рисунок 13 – прямая адресация при выполнении команды CALLF !addr11

3.3 Косвенная табличная адресация

При косвенной табличной адресации адрес перехода расположен в специальной таблице, расположенной в адресном пространстве микроконтроллера, при этом адрес ячейки таблицы, в которой хранится адрес перехода, определяется 5-разрядным смещением содержащемся в теле

команды. Адрес перехода, считанный из таблицы, записывается в программный счетчик, таким образом, происходит ветвление программы.

Таблицы косвенных переходов используются при выполнении команд вызова подпрограмм CALLT [addr5]. Эта инструкция считывает адрес подпрограммы расположенный в адресном пространстве 40H-7FH и выполняет вызов данной подпрограммы.

Схематически косвенная табличная адресация представлена на рисунке 14.

Рисунок 14 – Косвенная табличная адресация.

3.4 Регистровая адресация

Содержимое регистровой пары (АХ) копируется в программный счетчик (PC) после чего происходит ветвление программы.

Данный вид адресации используется при выполнении команды BR AX.

Схематически регистровая адресация представлена на рисунке 15.

Рисунок 15 – Регистровая адресация.

4. Адресация операндов.

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

4.1 Неявная адресация.

Адресация предназначена для регистров аккумулятора (А и АХ), эти регистры адресуются автоматически (неявно).

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

Таблица 2 – команды, адресующие регистры А и Х косвенно.

Команда

Регистр, который буде адресован неявно.

MULU

Регистр А для сомножителя, в АХ помещается результат

DIVUW

В АХ содержится делимое. Результат операции помещается также в АХ

ADJBA/ ADJBS

В регистре А содержатся числа для десятичной коррекции

ROR4/ ROL4

В регистре А находится значение, над которым производится операция циклического сдвига.

Формат операнда записывается как обычно, т.е. специфическая запись не нужна.

Пример: при выполнении команды MULU X умножается содержимое регистров А и Х , результат помещается в регистровую пару АХ, при этом регистры А и АХ адресуются неявно.

4.2 Регистровая адресация

Данный вид адресации используется для выбора пересылки данных между регистрами и при выборе банка регистров общего назначения. Банк выбирается флагами RBS0 и RBS1, при обозначении используют либо регистр, либо регистровую пару (Rn или RPn).

Этот вид доступа используется для адресации регистров общего назначения (РОН) в качестве операндов. Адресация регистров общего назначения осуществляется путем указания в теле инструкции 3-разрядного кода спецификации РОН.

При записи команд используют регистры , либо регистровые пары, указанные в таблице 3.

Таблица 3 – операнды регистровой адресации.

Идентификатор

Описание

r

X, A, C, B, E, D, L, H

rp

AX, BC, DE, LH

Пример :

MOV A, C;

При этом r соответствует регистру C

Рисунок 16 – формат команды MOV.

INCW DE; При этом rp соответствует регистровой паре DE

Рисунок 17 – формат команды INCW

Соседние файлы в папке методички к 78К0