Материал: А. Д. Чередов, А. Н. Мальчуков

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

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

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

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


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





ОП


КОП

АБ

С




.

.

.

Операнд

.

.

.



РП

ОП

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

АБ – адрес регистра базы; nБ – длина кода базы; nС длина поля смещения

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

nАИ

nА ОП maxnБ; nC.


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

MОП 2nБ

2mРП ,

т.е. максимальная адресуемая емкость ОП определяется разрядностью


А

Б
РП. Длина n поля кода команды, задающего адрес регистра базы АБ,

определяется через емкость РП MРП по формуле

nАБ log MРП.


А

К
Таким образом, можно определить количество n

двоичных раз-

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

nАК nАБ nС log2 MРП nC.

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

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

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


Для увеличения емкости адресной ОП (МОП) без увеличения длины


А

К
адресного поля команды n можно использовать для формирования

исполнительного адреса совмещение (конкатенацию) кодов базы и смещения (рис. 2.22).

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

nАИ nБ nС .

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

MОП 2nAИ

2nБ nC.

Следует отметить, что адресное пространство ОП может быть уве-

личено в

2nC

раз за счет использования способа совмещения. Однако

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


КОП

АБ

С



РК


.

.

.

Б-база

.

.

.




.

.

.

Операнд

.

.

.



РП






Б

С




nБ

nС



РА ОП АИ = Б/С

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


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


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

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


Рис. 2.23. Схема индексной адресации

Базово-индексная адресация со смещением


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

АИОП = Б + И + С.



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

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


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

    1. Примеры форматов команд и способов адресации

Источник: https://files.student-it.ru/previewfile/151041