Всего на сайте:
166 тыс. 848 статей

Главная | Информатика

Косвенная адресация  Просмотрен 100

Одним из путей преодоления проблем, свойственных прямой адресации, может служить прием, когда с помощью ограниченного адресного поля команды указывается адрес ячейки, в свою очередь, содержащей полноразрядный адрес операнда (рис. 3). Этот способ известен как косвенная адресация (КА). Запись (Ак) означает содержимое ячейки, адрес которой указан в скобках.

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

Рис. 3. Косвенная адресация

Недостатком косвенной адресации является необходимость в двухкратном обращении к памяти: сначала для извлечения адреса операнда, а затем для обращения к операнду (TКА = 2tЗУ). Сверх того задействуется лишняя ячейка памяти для хранения исполнительного адреса операнда. Способу свойственны следующие затраты оборудования:

CKA = RЯЧ + int(log2 NА) = int(log2 (Ni + NА))

где RЯЧ разрядность ячейки памяти, хранящей исполнительный адрес; NА количество ячеек для хранения исполнительных адресов; Ni количество адресуемых операндов. Здесь выражение int(log2 NА) определяет разрядность сокращенного адресного поля команды (обычно NА << Ni ).

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

Предыдущая статья:Прямая адресация Следующая статья:Регистровая адресация
page speed (0.0186 sec, direct)