Способы адресации операндов
Наибольшее количество видов адресации используется в командах пересылки данных. При определении способа адресации операндов в команде необходимо учитывать, что адресация для каждого операнда команды своя. В общем случае адресация определяется для каждого операнда отдельно.
Неявная адресация При неявной адресации регистр источник или регистр приёмник подразумевается в самом коде операции. Например:
RR A ;сдвиг содержимого аккумулятора вправо DA A ;десятичная коррекция аккумулятораРегистровая адресация используется для обращения к восьми рабочим регистрам выбранного банка рабочих регистров. Номер регистра записывается в трех младших битах команды. Например:
MOV A, R7 ;Во втором операнде использована регистровая адресация (в первом операнде неявная адресация)Косвенно-регистровая адресация используется для обращения к ячейкам внутреннего ОЗУ данных. В качестве регистров-указателей используются регистры R0, R1 выбранного банка регистров. Примеры использования косвенно-регистровой адресации:
;Косвенно-регистровая адресация использована во втором операнде ;Косвенно-регистровая адресация использована в первом операндеКосвенно - регистровая адресация используется также для обращения к внешней памяти данных. В этом случае с помощью регистров- указателей R0 и R1 (рабочего банка рабочих регистров) выбирается ячейка из блока 256 байт внешней памяти данных. Номер блока предварительно задается содержимым порта Р2. Например:
;Косвенно-регистровая адресация использована во втором операнде ;Косвенно-регистровая адресация использована в первом операндеКосвенно- регистровая адресация по содержимому аккумулятора А упрощает просмотр таблиц, записанных в памяти программ. Любой байт из таблицы может быть выбран по адресу, определяемому содержимым аккумулятора А, например:
Непосредственная адресация позволяет выбрать из адресного пространства памяти программ константы, явно указанные в команде, например:
;помещает в аккумулятор число 11h ;помещает в регистр R5 число 48[ ] [ ] [ ]