Способы адресации данных и переходов в микроЭВМ 1816ВМ85а (I8085А): Методическое пособие по курсу "Основы микропроцессорной техники и прикладное программирование", страница 5




Команда обеспечивает пересылку данных (операнда) из внутреннего регистра процессораR2 (источник)  во внутренний регистр R1 (приемник).

Команда MOVR1,R2– однобайтная и реализуется за один удлиненный цикл OF (5тактов). В таком цикле сначала  обеспечивается выборка из программной памяти КОп.

После дешифрации Коп

§  команда опознается

§  определяются коды источника и приемника данных

Далее в  такте Т4 осуществляется пересылка данных  типа R1 Rт.е. реализуетсяисполнительная фаза команды. В отличие от ранее рассмотренных команд такая исполнительная фаза не связана с изменением состояния ходя бы одного из внешних выводов процессора. Такой тип цикла называется внутренним.

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

В качестве источника–приемника операнда может быть указан любой внутренний РОН процессора.

Команды регистровой адресации – однобайтные и обеспечивают только внутреннюю пересылку данных  процессора (межрегистровые передачи).

Они имеют вспомогательный характер, однако, вследствие ограниченного числа внутренних регистров  процессора 8085 применяются – часто. Их основная функция – изменение текущей конфигурации вычислительных ресурсов процессора для обеспечения реализации следующих команд.

Достоинство регистровой адресации — компактность командных кодов  (одна ячейка  в памяти программ).  Команды выполняются быстро (пять тактов).

2.1.4.  Косвенная регистровая адресация данных.

Адресация операнда наз.косвенной регистровой (indirect) , если его адрес в ячейке памятиопределяется содержимым одной из  трех 16-разрядных регистровых пар процессора – ВC, DE или НL.  

Регистровые пары, содержащие адрес операнда наз. указателями.

Примеры команд косвенной регистровой адресации данных:

LDAXB                ; загрузка в Acc содержимого ячейки памяти, адрес

 ; которой  находится в регистровой паре ВС

STAXD                ; сохранение содержимого  Acc в  ячейке памяти, адрес                                        ; которой находится в регистровой паре DE

MOVM, D             ; передать содержимое регистра D  в ячейку памяти, ;адрес которой находится в регистровой паре HL

MOVB, M           ; передать содержимое ячейки памяти, адрес  которой ;находится в регистровой паре HL, в регистр B

В формальном описании команд, использующих  косвенную регистровую адресацию, применяются двойные открывающие и закрывающие скобки 

Например,  формальное описание вышеприведенных  команд имеет соответственно, вид

  (A)((BC));  ((DE)) (A);  ((HL)) (D);  (B)((HL)).

По мнемоническому представлению некоторых команд также можно опознать косвенную регистровую адресацию. Например,  аббревиатура  М ( Memory) в поле операндов команд типа MOVM, rтакже однозначно соответствует косвенной адресация операнда.

Особенности данного способа адресации данных целесообразно проиллюстрировать на вышеперечисленных командах.


Команда  LDAXB.  Команда однобайтная. Команда обеспечивает загрузку в Acc содержимого ячейки памяти, адрес   которой  находится в указателе BC.

Направление обмена информации память процессор. Приемник – регистр Асс.

Структура КK очевидна из рисунка 11. При этом следует иметь виду, что код регистровой пары–указателя двухбитный.

Перед  запуском команды необходимо обеспечить загрузку в  регистр–указатель BC адреса операнда.

Рисунок 12 поясняет процедуру выполнения данной команды.

Команда реализуется за 2 цикла — OF, MR,

 В первом цикле OF(4 такта) по адресу, содержащемся в РС обеспечивается выборка из программной памяти байта кода команды (КОп). 

Код операции фиксируется в Регистре команд (IR).

 По коду операции  идентифицируется

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

§  (ВС) – указатель адреса приемника данных – Acc.  

После дешифрации Коп,  инкрементируется PC.

 Затем реализуется исполнительная фаза команды.

Эта фаза состоит из одного  цикла MR. В этом цикле по адресу из регистра–указателя ВС (адрес предается через RA)   из памяти выбираются данные и фиксируются в Асс (регистр–приемник).

Команда реализуется за два цикла и 7 тактов (4+3).