-
суммирование кодов составляющих адреса;
-
совмещение (конкатенация) кодов составляющих адреса. Суммирование кодов составляющих производится для случаев:
А
И = Б
+
С;
А
И = И
+ С;
А
И =
Б
+
И
+
С.
Базирование способом суммирования
В команде адресный код А
К разделяется на две составляющие: А
Б –
адрес регистра регистровой памяти, в котором хранится база Б (базовый
адрес);
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 нулей.
РК
РП
РА ОП А
И = Б/С
Рис. 2.22. Схема формирования относительного адреса
способом
совмещения
кодов
базы
и
смещения
Индексная адресация
Для работы программ с массивами, требующими однотипных опе-
раций над элементами массива, удобно использовать индексную адре-
сацию.
Схема
индексной
адресации
аналогична
базированию
путем
суммирования (рис. 2.23). В этом случае адрес
i-го операнда в массиве
определяется как сумма начального адреса массива (задаваемого полем
смещения С) и индекса И, записанного в одном из регистров РП, назы-
ваемом теперь индексным регистром. Адрес индексного регистра зада-
ется
в
команде
полем адреса
индекса –
А
ИН (аналогично
А
Б).
В
каждом
i-м цикле
содержимое индексного
регистра изменяется
на величину постоянную (часто равную 1). Использование индексной
адресации значительно упрощает программирование циклических алго-
ритмов.
Рис.
2.23.
Схема
индексной
адресации
Базово-индексная адресация со смещением
Для эффективной работы при относительной адресации применяет-
ся
комбинированная
индексация
с
базированием,
при
которой
адрес
операнда
вычисляется
как сумма
трех
величин
(рис.
2.24):
А
ИОП
=
Б
+ И + С.
Рис. 2.24. Схема формирования исполнительного адреса
при базово-индексной адресации
со
смещением
Стековая адресация
Стековая
память (стек) является
эффективным элементом совре-
менных ЭВМ, реализует неявное задание адреса операнда. Хотя адрес
обращения
в
стек
отсутствует
в
команде,
он
формируется
схемой
управления
автоматически
по специальному
правилу.
-
Примеры форматов команд и способов адресации