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

§  непосредственный операнд является частью программного кода.

§  источником операнда  всегда   служит программная память.

Непосредственная адресация может быть применена и к двухбайтным операндам.

В качестве примера рассмотрена командаLXIrp, data16.

Она обеспечивает загрузку двухбайтного операнда (data) из программной памяти в регистровую пару– приемник (rp).

Команда – трехбайтная и формально описывается как (rp) ←data16.

Первый байт – код операции, второй и третий байт непосредственный операнд (Рис.2). Естественно, что команда занимает в программной памяти три последовательных ячейки. Причем, следует помнить, что младшему байту операнда соответствует младший адрес ячейки памяти, а старшему байту – следующий адрес. Такой способ организации обращения к памяти наз. ПАМЯТЬ С ОБРАТНЫМ ПОРЯДКАМ СЛЕДОВАНИЯ АДРЕСОВ.

Рисунком 5 поясняется процедура реализации командного цикла команды LXIrp,data.




Команда реализуется за три цикла: OFMRMR.

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

По  Коп,  принятому в IR  процессором осуществляется   

§  идентификация команды

§  определяется необходимость довыборки второго и третьего байта кода команды т.е. – непосредственного операнда

§   идентифицируются имя регистровой пары–приемника непосредственного операнда.

После дешифрации Коп и инкрементации PC (формирование адреса младшего байта операнда) начинается  исполнительная фаза команды.

Фаза образуется двумя последовательно реализуемыми  циклами MR (Memory read).

Первый цикл MR (3 такта).  В первом цикле MR осуществляется выборка младшего байта шестнадцатиразрядного операнда. Байт фиксируется в младшем байте регистровой пары–приемника (см. Рисунок  5).

Выполняется инкрементирование РС

Второй цикл MR (3 такта).  В этом цикле из программной памяти выбирается старший байт операнда. Процедура  аналогична выборке предшествующего байта.

Как и в случае однобайтного операнда, команда непосредственной адресации операнда в формате word имеет следующие особенности.

Первое. Операнды при этом способе адресации должны быть  размешены в программной памяти и программным путем изменены быть не могут.

Второе. Команда занимает три последовательные ячейки программной памяти.

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

Однобайтные данные

пересылаются однобайтные инструментальные константы,  




табличные данные,

слова–маски  

Как и в случае однобайтного операнда, команда непосредственной адресации операнда в формате word имеет следующие особенности.

Первое. Операнды при этом способе адресации должны быть  размешены в программной памяти и программным путем изменены быть не могут.

Второе. Команда занимает три последовательные ячейки программной памяти.

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

Двухбайтные данные.

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

2.1.2.  Прямая адресация данных (direct). При прямой адресации  в коде команды содержится не операнд  (как при непосредственной адресации), а адрес операнда. Источником операнда всегда является ячейка памяти.

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

Таким образом команды, использующие прямую адресацию – трехбайтные (Рисунок 6).

На рисунке показана структура кода команды и его расположение в программной памяти. Как  и ранее младшая часть адреса предшествует старшей ( ПАМЯТЬ С ОБРАТНЫМ ПОРЯДКАМ СЛЕДОВАНИЯ АДРЕСОВ)..


 

Примеры команд прямой адресации:

LDA 0FA1Ch       ; загрузка A← (FA1C),  где (FA1C) ─ содержимое