Скачиваний:
387
Добавлен:
22.01.2014
Размер:
3.74 Mб
Скачать

7.2 Однокомпонентные способы адресации.

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

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

Рис.7.1

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

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

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

Пример:

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

Пример:

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

Пример:

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

Пример:

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

Примеры:

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

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

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

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

Рис.7.2.

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

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

7.2.3 Способы адресации с автомодификацией.

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

Рис.7.3.

При автоинкрементном способе (рис.7.3.а) обеспечивается вычисление исполнительного адреса аналогичного косвенному, но с последующим автоматическим увеличением содержимого адресного регистра на длину операнда (1 байт, 2 байта), что позволяет подготовиться к выборке следующего операнда.

Примеры:

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

Пример:

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

Указанные способы адресации широко используются для работы со стеками - специально организованными областями памяти.

Примеры использования команд с автомодификацией адреса:

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

Комбинирование адресации с автомодификацией и косвенной позволяет построить более универсальные способы доступа по сравнению с рассмотренными выше - косвенную автоинкрементную и косвенную автодекрементную адресации. Схемы реализации указанных способов представлены на рис.7.4.

Рис.7.4.