Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Федеральное агентство по образованию v2.docx
Скачиваний:
38
Добавлен:
14.09.2019
Размер:
1.53 Mб
Скачать

2.5.4. Регистровая адресация

Регистровая адресация (РА) напоминает прямую адресацию. Различие состоит в том, что адресное поле инструкции указывает не на ячейку памяти, а на регистр процессора (рис. 24). Идентификатор регистра в дальнейшем будем обозначать буквой R. Обычно размер адресного поля в данном случае составляет три или че­тыре бита, что позволяет указать соответственно на один из 8 или 16 регистров общего назначения (РОН).

Двумя основными преимуществами регистровой адресации являются: корот­кое адресное поле в команде и исключение обращений к памяти. Малое число РОН позволяет сократить длину адресного поля команды, то есть СРА << СПА. Кроме того, ТРА = tРОН, где tРОН — время выборки операнда из регистра общего назначения, при чем tРОН << 2tЗУ. К сожалению, возможности по использованию регистровой адресации ограничены малым числом РОН в составе процессора.

Рис. 24. Регистровая адресация.

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

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

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

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

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

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

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

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

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

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

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

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