logo search
Кафедра “Системы автоматического управления”

7.2.1 Прямой способ адресации.

Прямой способ адресации означает включение полного исполнительного адреса операнда в состав команды. Схематически прямой способ адресации изображен на рис.7.1.

Рис.7.1

Первая строка соответствует прямой адресации данных во всем адресном пространстве DSEG. Примером команды с прямой адресацией служит:

Для явного задания полного m-разрядного адреса в команде должно быть выделено m-разрядов. С целью сокращения числа разрядов поля команды во многих системах используется короткая прямая адресация, обеспечивающая непосредственный доступ к ограниченной, заранее определенной области памяти. Короткая прямая адресация достаточно эффективна в МПС гарвардского типа.

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

Пример:

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

Пример:

Прямая адресация портов используется для адресации изолированного пространства IОSEG (вторая строка).

Пример:

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

Пример:

Для более эффективного кодирования операций с часто используемым непосредственным операндом - литералом - обычно вводят специальные коды с неявным определением данных:

Примеры:

Адресация с вычисляемым адресом.

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

Простейшим среди них является косвенная адресация, схема реализации которой показана на рис.7.2 (первая строка).

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

Рис.7.2.

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

Косвенная регистровая адресация портов (третья строка рис.7.2) используется при доступе к изолированному пространству IОSEG. Благодаря этому можно использовать одну и ту же программу для адресации портов, адреса кторых заранее неизвестны или могут меняться в процессе работы МПС.