Относительная адресация

 

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

Рис. 2.68. Относительная адресация

 

Адресация относительно счетчика команд базируется на свойстве локальности, выражающемся в том, что большая часть обращений происходит к ячейкам, расположенным в непосредственной близости от выполняемой команды. Это позволяет сэкономить на длине адресной части команды, поскольку разрядность подполя может быть небольшой. Главное достоинство данного способа адресации состоит в том, что он делает программу перемещаемой в памяти: независимо от текущего расположения программы в адресном пространстве взаимное положение команды и операнда остается неизменным, поэтому адресация операнда остается корректной.

Эффективность данного способа адресации можно описать выражениями:

 

, (2.17)

 

где – разрядность счетчика команд; – время сложения составляющих исполнительного адреса.