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

неявная адресация

стековая адресация.

для переходов

прямая

косвенно-регистровая.

Перечисленные способы адресации соответствуют адресации одного (единственного) операнда или перехода.

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

Поэтому, целесообразно различать  два уровня

1.  адресация  конкретного (одного) операнда, перехода  и (или)  результата, используемая в команде;

2.  комбинация способов адресации нескольких операндов и результата, характерных для  команды в целом (комплексный подход).

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

В разделе 2 рассматриваются возможные способы  адресации конкретного операнда и перехода.

В разделе 3  команды анализируются в рамках комплексного подхода.

2. Адресация данных и переходов на уровне операнда

2.1. Адресация данных

2.1.1. Непосредственная (immediate) адресация данных

Адресация называется непосредственной, если значение операнда содержится в коде команды.

Следует различать адресацию операнда в формате байт и адресацию в формате два байта  – слова (word).

В первом случае,  8-разрядные данные представляются  вторым байтом кода команды.


Во втором случае (формат word),   16-разрядные  данные  представляются  вторым и третьим байтами команды.

Структура машинных кодов команд, адресующих однобайтные операнды показана на рисунке 1,  двухбайтные– на рис.2

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

Адресом младшего байта двухбайтного  операнда является адрес ячейки памяти следующий за первым байтом КК, а адресом старшего байта – следующий адрес.

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

Для анализа особенностей данного типа адресации целесообразно рассмотреть команду MVIr,data

Команда обеспечивает загрузку непосредственного операнда (data), заданного вторым байтом КК, в любой программно доступный  регистр процессора. Формально команда описывается как (r) ←data8. 


На рисунке 3 показано размещение двухбайтного кода рассматриваемой команды в ячейках памяти начиная с адреса addr:.

Рисунок 3 иллюстрирует процедуру реализации команды  MVI r,data, которая использует непосредственную  адресацию  операнда в формате байт.

Команда, содержащая непосредственный операнд data,  реализуется за два цикла — OF и MR.

Цикл OF (Opcodefitch).  В этом цикле (4 такта) процессором осуществляются следующие действия.

По адресу addrKK команды, содержащемуся в РС,  обеспечивается выборка из программной памяти первого байта кода команды.

После выборки байт  принимается в Регистр команд (IR).

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

В такте t2 цикла OF инкрементируется программный счетчик, тем самым формируется адрес второго байта КК.

Далее по  Коп, принятому в IR в устройстве управления и синхронизации осуществляется следующая последовательность действий

§  команда идентифицируется;


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

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

Далее процессор переходит к реализации следующего цикла.

 Цикл MR (3 такта). В этом цикле осуществляется выборка из программной памяти второго байта КК. Этот байт – непосредственно–адресуемый операнд, который  помещается в указанный в Коп регистр–приемник. Цикл MR выполняется следующим образом:

В такте t1 на шину адреса выставляется адрес  addr+1 второго байта КК, который сформирован в РС в такте t2 предшествующего цикла OF. В такте t2 анализируются состояния сигналов READY (готовность) и HOLD (захват). Далее, в такте t3 на шине управления формируется строб MEMR, затем принимается считанный из ячейки памяти с адресомaddr+1 непосредственно–адресуемый операнд, который  помещается в указанный в Коп регистр–приемник.

       Таким образом, очевидны еще две особенности непосредственной адресации.