Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пос Орг ЭВМ для Вер.ЕС.doc
Скачиваний:
28
Добавлен:
19.09.2019
Размер:
2.93 Mб
Скачать

2.4.2. Относительные способы формирования исполнительных адресов ячеек памяти

Относительные способы формирования АИ предполагают, что двоичный код адреса ячейки памяти образуется из нескольких составляющих: Б код базы, И код индекса, С код смещения, используемых в сочетаниях (Б и С), (И и С), (Б, И и С).

При относительной адресации применяются два способа вычисления адреса АИ:

  • суммирование кодов составляющих адреса;

  • совмещение (конкатенация) кодов составляющих адреса.

Суммирование кодов составляющих производится для случаев:

АИ = Б + С; АИ = И + С; АИ = Б + И + С.

Базирование способом суммирования

В команде адресный код АК разделяется на две составляющие: АБ – адрес регистра регистровой памяти, в котором хранится база Б (базовый адрес); C – код смещения относительно базового адреса (рис. 2.17).

Для определения максимальной емкости ОП, адресуемой с помощью базирования, способом суммирования, определим длину кода исполнительного адреса

Рис. 2.17. Схема формирования относительного адреса способом суммирования кодов базы и смещения: СМ – сумматор; РАОП – регистр адреса ОП; Б – база (базовый адрес); С – смещение; АБ- адрес регистра базы; nБ – длина кода базы; nС – длина поля смещения

Так как nБ = mРП и обычно больше, чем nC, то справедливо следующее выражение:

т. е. максимальная адресуемая емкость ОП определяется разрядностью РП. Длина поля кода команды, задающего адрес регистра базы АБ, определяется через емкость РП MРП по формуле

Таким образом, можно определить количество двоичных разрядов в адресном поле команды, необходимое для формирования АИ с размещением базы в РП:

.

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

С

Убрано предложение

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

Относительная адресация с совмещением составляющих АИ

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

При совмещении кодов базы и смещения

.

Таким образом,

Следует отметить, что адресное пространство ОП может быть увеличено в раз за счет использования способа совмещения. Однако в данном случае начальные адреса массивов не могут быть реализованы произвольно, а должны иметь в младших разрядах nC нулей.

Рис. 2.18. Схема формирования относительного адреса способом совмещения кодов базы и смещения

Индексная адресация

Для работы программ с массивами, требующими однотипных операций над элементами массива, удобно использовать индексную адресацию. Схема индексной адресации аналогична базированию путем суммирования (см. рис.2.17). В этом случае адрес i-го операнда в массиве определяется как сумма начального адреса массива (задаваемого полем смещения С) и индекса И, записанного в одном из регистров РП, называемом теперь индексным регистром. Адрес индексного регистра задается в команде полем адреса индекса – АИН (аналогично АБ).

В каждом i-м цикле содержимое индексного регистра изменяется на величину постоянную (часто равную 1). Использование индексной адресации значительно упрощает программирование циклических алгоритмов.

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

АИОП = Б + И + С.

Рис. 2.19. Схема формирования исполнительного адреса при индексной адресации и базировании: АИН – адрес индексного регистра; nАИН – длина адреса индексного регистра

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

Стековая память (стек) является эффективным элементом современных ЭВМ, реализует неявное задание адреса операнда. Хотя адрес обращения в стек отсутствует в команде, он формируется схемой управления автоматически по специальному правилу.