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

;ячейки  памяти, адрес  которой указывается во ;втором и третьем байте КК

STA  032DEh     ; сохранение    (32DE)A, где (32DE) ─ адрес :ячейки  памяти,  в которую загружаются    данные    :из Аcc

Замечание. По формальным признакам (адрес в КК) к методу прямой адресации можно причислить и команды ввода и вывода In port  и OUT port. Они выполняют соответственно операции  A← (port) и (port) ← А.   В  этих командах  адрес порта (port), в котором находится (принимается) операнд, также прямо указывается  во втором байте команды.  Однако,  внешние устройства не использу­ются для хранения оперативных данных с их последующим  использованием в  вычислительном процессе (для этого целесообразно использовать оперативную память). Потому, тип адресации   команд ввода и вывода In port  и OUT port  обычно не акцентируют, хотя по формальным признакам – это команды прямой адресации.

Рисунок 7 иллюстрирует метод прямой адресации.

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

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

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

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

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

 По коду операции  процессором

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

§  определяется необходимость продолжения выборки второго и третьего байта КК  (адреса операнда)

§  определяется, что регистром–приемником данных является Асс.

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




После дешифрации КОп,  в последующих двух циклах MR,MR осуществляется выборка из памяти сначала младшего, а затем старшего байта адреса данных. Получаемые при выборке байты адреса последовательно размещаются соответственно в младшем (RAl ) и старшем (RAh ) байтах RA.

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

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

Таким образом, команда реализуется за четыре цикла и 13 тактов (4+3+3+3).

Прямая адресация обладает следующими особенностями:

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

·  с помощью команд с прямой адресацией  может быть организован обмен в обе стороны т.е. процессор – память  и память– процессор

·  прямая адресация является наиболее простой  и “естественной”,  но и наиболее неэкономичной.




1.2.3 Регистровая адресация данных (register). При такой адресации также как и в командах прямой адресации адреса операндов указываются в коде команды.

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

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

MОVC,E          ;   команда пересылки данных  CE. Содержимое

                                    ;  регистра Е передается в регистр С

MОVB,D          ;   команда пересылки данных  BD.  Содержимое

                                    ;  регистра D передается в регистр B

Известно, что для адресации любого программно–доступного регистра процессора достаточно трех бит (Таблица1).



.Таблица1 – Коды регистров и регистровых пар

Имена внутренних регистров и регистровых пар

Коды регистров и регистровых пар

В

000

С

001

D

010

E

011

H

100

L

101

A

111

M

110

BC

00

DE

01

HL

10

SP

11

Поэтому для идентификации команды и указания адресов приемника и (или) источника данных  достаточно восьми бит.

 Команды регистровой адресации – однобайтные. Структура байта КК регистровой адресации  очевидна из Рисунка 9.

Код операции (первый и единственный байт), идентифицирующий  команду,  содержит два  трехбитных поля. В этих полях указывается код регистра–источника (sss – source) и код регистра–приемника  (ddd– distination) данных.  Это обеспечивает адресацию операндов. путем указания в КК кода  (адреса) с регистра.

Способ реализации регистровой  адресации иллюстрируется на примере команды  MOVR1,R2(Рисунок 9)