Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцессоры Токхайм / 6.10. СПОСОБЫ АДРЕСАЦИИ

.doc
Скачиваний:
167
Добавлен:
13.05.2015
Размер:
1.37 Mб
Скачать

6.10. СПОСОБЫ АДРЕСАЦИИ

Рассмотрим команду сложения. В случае типового МП мы предположили, что одно из слагаемых было в аккуму­ляторе. В таком случае откуда поступает второе слагаемое и как оно находится? Многочисленные способы решения этой задачи называются способами адресации. В настоя­щей главе мы упоминали уже способы адресации во мно­гие регистры, однако в этом вопросе имеется ряд тонкостей. Рассмотрим их подробнее.

Способы адресации нашего типового МП следующие: 1) неявный; 2) регистровый; 3) непосредственный; 4) пря­мой; 5) косвенный регистровый.

Два первых (регистровый и неявный) касаются опе­рандов, расположенных в самом МП. Три последних (не­посредственная, прямая и косвенная регистровая)—опе­рандов, расположенных вне МП, т.е. в ячейках памяти или портах УВВ. Эти способы адресации присущи МП Intel 8080/8085.

Рассмотрим пример команды с неявной адресацией. Команда ВОССТАНОВИТЬ индикатор переноса принад­лежит к группе команд передачи данных (см. табл. 6.5) и является однобайтовой, потому что дополнительные дан­ные бесполезны для ее выполнения. Все события происхо­дят в МП. Это действие представлено на рис. 6.39, а, не нужно искать данные или адреса в других регистрах МП, в памяти или портах УВВ. Команда STC восстанавливает индикатор переноса без воздействия на другие регистры или индикаторы.

В случае регистровой адресации операнд отыскивается во внутреннем регистре МП. Рассмотрим пример команды

ВЫЧЕСТЬ L из А, принадлежащей к группе арифметиче­ских команд (см. табл. 6.3). Регистровые операции (как и неявные) всегда являются однобайтовыми, потому что они не требуют данных и адресов вне МП. Все собы­тия происходят в МП. Операция показана на рис. 6.39, б.

Первое число (здесь 0000 1111) находит­ся в аккумуляторе, другое (0000 ООП) является содержи­мым регистра L. После выполнения команды результат (0000 1100) поме­щается в аккумуля­тор.

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

Операнд следует в команде не­посредственно за КОП. Рассмотрим пример этого типа команд. Команда загрузить данные в SP, принадлежащую группе передачи данных (табл. 6.5) — это трехбайтовая команда. Обычно непосредственные команды точно опре­деляются 2 или 3 байт. В примере, показанном на рис. 6.40,

2 байт данных берутся в памяти программы и помещаются в указатель стека. Младший байт 0111 0000 загружен пер­вым, затем старший байт 0000 0010. Непосредственные команды удобны для осуществления загрузок инициализи­рованных регистрами МП или указателем стека.

В случае прямых команд 2-й и 3-й байт памяти прямо указывают на адрес операнда. Они являются адресами в прямом способе адресации, тогда как при непосредствен­ной адресации эти же байты были операндами. Операция передать данные из порта УВВ в А (группа команд пере­дачи данных, см. табл. 6.5) является примером прямой команды из 2 байт*. Обычно эти команды состоят из 2 или 3 байт. В примере, приведенном на рис. 6.41, мы можем проследить передачу содержимого 1100 ООП из порта вво­да в аккумулятор.

Адрес порта указан адресом, являющим­ся содержимым 2-го байт команды (здесь 0000 1010, или 1010).

В случае косвенных регистровых команд пара регист­ров HL указывает на адрес операнда в памяти. Рассмот­рим пример: загрузить LOC (Н и L) в А с мнемоникой MOV А, М (группа команд передачи данных, см. табл. 6.5).

* Здесь двухбайтовая команда, поскольку для указания 8-разряд­ного адреса порта УВВ достаточно 1 байт (второго), 1-м байт команды является КОП. — Прим. ред.

Этот тип команд всегда однобайтовый. Обратимся к рис. 6.42, содержимое памяти по адресу 2080Н (1111 0000 в этом случае) загружено в аккумулятор. Соответствующий адрес (2080Н в нашем случае) памяти данных указан со­держимым пары HL, которая здесь играет роль адресного регистра.

Другие МП снабжены иногда иными способами прямой адресации, а именно: нулевой или основной страницы; аб­солютной; адресации действующей страницы или ожи­даемой.

Упражнения

Назвать пять способов адресации в типовом мик­ропроцессоре.

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

6.87. Когда 2-й и 3-й байт команды указывают на адрес

операнда, речь идет о ____ (прямой, непосредственной)

адресации.

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

данных).

6.89. В _______ (регистровой, косвенной регистровой)

команде пара регистров HL МП указывает на адрес опе­ранда.

6.90. Когда два операнда (например, два числа при вычитании) являются содержимым внутренних регистров

МП, может быть использован ______ (непосредственный,

регистровый) способ адресации.

6.91. Внутренние и регистровые команды являются байтовыми.

Команды прямой адресации являются ______ бай­товыми.

Команды косвенной регистровой адресации явля­ются ______ байтовыми.

Решения

6.85. Неявная, регистровая, непосредственная, прямая, косвенная регистровая. 6.86. Неявной. 6.87. Прямой. 6.88. Программы. 6.89. Кос­венной регистровой. 6.90. Регистровый. 6.91. Одно. 6.92. Двух или трех 6.93. Одно.