Относительная адресация
Для команд безусловного и условного перехода (ветвления) наиболее типична относительная адресация, когда в адресной части команды указывается смещение адреса точки перехода относительно текущей команды, то есть смещение относительно текущего содержимого регистра номера команды. Использование данного способа адресации позволяет программе выполняться в любом месте оперативной памяти — программы становятся перемещаемыми. Среди команд безусловного перехода доля относительной адресации составляет около 90%.
Для команд перехода чрезвычайно важно, насколько далеко адрес перехода отстоит от адреса команды перехода, иными словами, какова типичная величина смещения. Часто длина смещения не превышает 8 разрядов, что соответствует смещению в пределах ±128 относительно команды ветвления.
При относительной адресациидля получения исполнительного адреса операнда содержимое поля «смещение»команды складывается с содержимым регистра номера команды (рис. 15.7).
Рис. 15.7. Относительная адресация
Следует отметить, что в момент вычисления исполнительного адреса операнда в регистре номера команды уже может быть сформирован адрес следующей команды, что нужно учитывать при выборе величины смещения. Обычно поле «смещение»трактуется как двоичное число в дополнительном коде.
Адресация относительно регистра номера команды базируется на свойстве локальности, выражающемся в том, что большая часть обращений происходит к ячейкам, расположенным в непосредственной близости от выполняемой команды. Это позволяет сэкономить на длине адресной части команды, поскольку разрядность поля «смещение»может быть небольшой. Главное достоинство данного способа адресации состоит в том, что он делает программу перемещаемой в оперативной памяти. Независимо от текущего расположения программы в адресном пространстве взаимное положение команды и операнда остается неизменным, поэтому адресация операнда остается корректной.
Во всех рассмотренных способах адресации предполагалось, что формируется исполнительный адрес операнда, результата операции или перехода. Если в компьютере не предусмотрена виртуальная память, то сформированный адрес является физическим адресом оперативной памяти. Если же в компьютере реализована виртуальная память, то необходимо виртуальный адрес преобразовать в физический.
Контрольные вопросы
- Что такое исполнительный адрес?
- Что такое способ адресации?
- Назовите особенности непосредственной адресации
- Как формируется исполнительный адрес при прямой адресации?
- Как формируется исполнительный адрес при косвенной адресации?
- Как формируется исполнительный адрес при регистровой адресации?
- Как формируется исполнительный адрес при относительной адресации?
- Как формируется исполнительный адрес при базовой регистровой адресации?
- Как формируется исполнительный адрес при индексации?
- Какие способы адресации используются в командах управления потоком команд?
Дата добавления: 2015-09-29; просмотров: 946;