Относительная адресация ячейки ОП Базирование способом суммирования
В команде адресный код Ак разделяется на две составляющие: Aб - адрес регистра в регистровой памяти , в котором хранится база Б (базовый адрес); С - код смещения относительно базового адреса (рис. 2.7).
Рис. 2.7. Схема формирования относительного адреса способом суммирования кодов базы и смещения: СМ - сумматор; РАОП - регистр адреса ОП;
Б - база (базовый адрес); С - смещение; Aб- адрес регистра базы;
nб - длина кода базы; nc - длина поля смешения
Для определения максимальной емкости ОП, адресуемой с помощью базирования, способом суммирования, определим длину кода исполнительного адреса
Так как nб
= mрп и обычно больше, чем Пс, то справедливо следующее выражение:
т. е. максимальная адресуемая емкость ОП определяется разрядностью РП. Длина NаБ
поля кода команды, задающего адрес регистра базы Aб, определяется через емкость РП Мрп, по формуле
Таким образом, можно определить количество NаБ
двоичных разрядов в адресном поле команды, необходимое для формирования Аи с размещением базы в РП:
Приведенные выражения позволяют определить числовые значения параметров относительной адресации (базирование способов суммирования). Для того, чтобы увеличить Моп, необходимо выполнить условие:
С помощью метода относительной адресации удается получить так называемый перемещаемый программный модуль, который одинаково выполняется процессором независимо от адресов, в которых он расположен. Начальный адрес программного модуля (база) загружается, при входе в модуль, в базовый регистр. Все остальные адреса программного модуля формируются через смещение относительно начального адреса (базы) модуля. Таким образом, одна и та же программа может работать с данными, расположенными в любой области памяти, без перемещения данных и без изменения текста программы только за счет изменения содержания всего одного базового регистра. Однако время выполнения каждой операции при этом возрастает.