Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Косвенная регистровая адресация

Поиск

 

Косвенная регистровая адресация (КРА) представляет собой косвенную адреса­цию, где исполнительный адрес операнда хранится не в ячейке основной памяти, а в регистре процессора. Соответственно, адресное поле команды указывает не на ячейку памяти, а на регистр (рис. 25).

 

Рис. 25. Косвенная регистровая адресация.

 

 

Достоинства и ограничения косвенной регистровой адресации те же, что и у обычной косвенной адресации, но благодаря тому, что косвенный адрес хранится не в памяти, а в регистре, для доступа к операнду требуется на одно обращение к памяти меньше. Эффективность косвенной регистровой адресации можно оце­нить по формулам:

Tкра = tрон + tзу; скра = rpoh + int(log2 NA) = int(log2(Ni + NA)), где rpoh — разрядность регистров общего назначения.

Адресация со смещением

 

При адресации со смещением исполнительный адрес формируется в результате суммирования содержимого адресного поля команды с содержимым одного или нескольких регистров процессора (рис. 26).

Адресация со смещением предполагает, что адресная часть команды включает в себя как минимум одно поле (Aк). В нем содержится константа, смысл которой в разных вариантах адресации со смещением может меняться. Константа может пред­ставлять собой некий базовый адрес, к которому добавляется хранящееся в регистре смещение. Допустим и прямо противоположный подход: базовый адрес находится в регистре процессора, а в поле Aк указывается смещение относительно этого адре­са. В некоторых процессорах для реализации определенных вариантов адреса­ции со смещением предусмотрены специальные регистры, например базовый или индексный. Использование таких регистров предполагается по умолчанию, поэтому адресная часть команды содержит только поле Ак.

Если же составля­ющая адреса может располагаться в произвольном регистре общего назначения, то для указания конкретного регистра в команду включается дополнительное поле R (при составлении адреса более чем из двух составляющих в команде будет несколь­ко таких полей). Еще одно поле R может появиться в командах, где смещение пе­ред вычислением исполнительного адреса умножается на масштабный коэффи­циент. Такой коэффициент заносится в один из РОН, на который и указывает это дополнительное поле. В наиболее общем случае адресация со смещением подразу­мевает наличие двух адресных полей: Ак и R.

 

 

Рис. 26. Адресация со смещением.

 

В рамках адресации со смещением имеется еще один вариант, при котором ис­полнительный адрес вычисляется не суммированием, а конкатенацией (присоединением) составляющих адреса. Здесь одна составляющая представляет собой старшую часть исполнительного адреса, а вторая — младшую.

Ниже рассматриваются основные способы адресации со смещением, каждый из которых, впрочем, имеет собственное название.

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

 

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

 

 

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

 

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

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

TСА = tРОН + tСЛ + tЗУ; ССА = int (log2 Ni – RСК)

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



Поделиться:


Последнее изменение этой страницы: 2016-09-18; просмотров: 1237; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.97.9.168 (0.006 с.)