Относительная (базовая) адресация

Адрес операнда определяется как сумма содержимого адресного поля команды и некоторого числа, называемого базовым адресом. Базовый адрес является косвенным. Для указания его адреса в команде предусмотрено поле В. Ещё одно поле команды, в котором находится адрес операнда, называют смещением.

 

Рисунок 2.5.6-Формирование адреса операнда при относительной адресации

Полученный адресEA=[B]+D называется эффективным или исполнительным адресом. Прямые скобки при B ([B])-означают, что первое слагаемое берется по адресу, указанному в поле В. При выборке некоторого участка данных базовый адрес является неизменным. Адресация ячеек памяти относительно базового адреса осуществляется полем смещения.

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