Косвенный, когда адрес операнда находится в одном из индексных
регистров. Пример: AX0 = DM(I1, M1);, где адрес операнда-источника
содержится в индексном регистре I1. После пересылки этот регистр
инкрементируется на величину содержимого М1.
Процессор также поддерживает два метода адресации переходов:
Прямой, когда в команде явно указан адрес перехода. Например:
IF EQ JUMP zero;, где zero является меткой и при компиляции
заменяется соответствующим адресом в ПП;
Косвенный, когда адрес операнда находится в одном из индексных
регистров, предназначенных для адресации ПП (I4-I7). Пример: IF
FLAG_IN JUMP (I4);, где адрес перехода содержится в индексном
регистре I4.
1.17.3. Условные обозначения
При описании команд будут использоваться следующие соглашения
о их записи:
Квадратные скобки [ ] Отмечают необязательную часть команды
Параллельные линии | | Содержат список операндов, из которого может
быть выбран только один операнд
ПРОПИСНЫЕ БУКВЫ Прописные буквы обозначают литерал. К
литералам относятся имена команд (например,
ADD), имена регистров (например, АХ0) или
служебная информация (например, (SS) в
командах умножения, см. п. 1.17.1). Литералы
должны писаться так, как они приведены в
описании команды
Операнды Обобщенные операнды некоторых команд могут
писаться строчными буквами. В ассемблерной
программе могут иметь различное значение.
Например, в качестве yop могут выступать
имена следующих регистров AY0, AY1 или AF
<exp> Обозначает экспоненту (число и направление
сдвигов) в командах непосредственных сдвигов
(см. п. 1.17.7.е, ж). Экспонента является 8-бит-
ным целым со знаком
<data> Обозначает значение непосредственного
данного. Может быть не только числом, но и
именем адресной метки или именем
переменной/буфера, перед которой должны
стоять символы ‘%’ или ‘^’
<addr> Обозначает значение прямого адреса. Может
быть либо непосредственным значением
(константой), либо программной меткой
<reg> Имя любого доступного регистра процессора,
см. табл. 1.20