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

КомандаSTAXD.  Ее отличие от  рассмотренной ранее команды  LDAXзаключается в направлением обмена информацией в  исполнительной фазе. Реализация команды STAXD поясняется Рисунком  13.

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

Тип обмена: процессор   память.  Поэтому исполнительная фаза обеспечивается циклом MW.

. Как и ранее, перед  запуском команды необходимо загрузить адрес операнда в регистр–указатель DE.

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

В первом цикле осуществляется выборка КК и его дешифрация. После этого в исполнительной фазе команды, в цикле MW осуществляется запись в память содержимого регистра–аккумулятора. Особенности рассмотренных команд LDAX rp и STAXrp состоит в следующем.

Первое. В командах LDAX rp и STAXrp для адресации памяти можно использовать две регистровые пары–указатели  – ВC и DE.   

Второе. Приемником или источником всегда является аккумулятор.

Использование в качестве указателей двух регистровых пар обеспечивает “гибкость”  при программировании. Обмен только через Acc, напротив, затрудняет программирование.

В другой паре  команд, также использующих косвенную регистровую адресацию операнда   — MOVr, Mи MOVM,rв качестве приемника (источника) r доступен любой оперативный регистр. В тоже время,  для этих команд ячейки памяти адресуется только одним указателем – регистровой парой HL.  

Структура КK команд оMOVr, Mи MOVM,rчевидна из рисунка 14. Следует иметь виду, что код регистра – трехбитный  и определяется таблицей 1.

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

Рисунок 15 поясняет процедуру выполнения команды.MOVr, M, а рисунок 16 процедуру выполнения команды.MOVM,r.





Команды различаются направлением обмена между памятью и процессором в исполнительной фазе.  Для команды   MOVr, MэтоMemCPU,  для команды MOVM, rэто CPUMem .  Каждая из команд реализуется за два цикла, соответственно  OF,MR  и OF, MW и за 7 тактов(4+3).  

Особенности рассмотренных команд MOVM, r иMOVr, M состоят в следующем.

Первое. В командах MOVM, r иMOVr, M в качестве указателя можно использовать только одну  регистровую пару HL. Это затрудняет программирование и уменьшает возможности программиста.

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

Косвенная адресация широко применяется при обработке регулярных структур данных типа массивов. В указатель памяти сначала загружается базовый (начальный) адрес массива, а переход к последовательным элементам массива осуществляется с помощью инкремента указателя памяти.





Косвенная адресация позволяет “обойти” один из недостатков микропроцессора К1821ВМ85  – отсутствие индексной адресации. В данном режиме исполнительный адрес образуется путем сложения второ­го байта  команды, рассматриваемого как целое без знака и называемого смещением, и содержимого внутреннего 16-битного индексного регистра. Индексную адресацию, как и косвенную, удобно применять в цикли­ческих программах. При необходимости ин­дексную адресацию в микропроцессоре К1821ВМ85 можно реа­лизовать программно на основе косвенной, разумеется, за счет непроизводи­тельных потерь времени и увеличения длины программы.

Неявная  адресации данных. Рассмотренные  ранее четыре метода адресации операндов требуют указания в командах операнда или его адреса в явном виде.

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


Особенности команд с неявной адресацией  целесообразно рассмотреть на примере команды CMA. . Команда обеспечивает поразрядную инверсию содержимого аккумулятора.  Адрес операнда –  всегда аккумулятор. Тип преобразования выполняемого над операндом – всегда  поразрядная инверсия.

Структура кода команды CMA поясняется рисунком 17.

Процедура выполнения команды CMA, поясняется рисунком 18.

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