Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции полные ВТиИТ.DOC
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.95 Mб
Скачать
  1. Необходимость иметь большее число разрядов для представления адресов и кода операции приводит к недопустимо большой длине трёхадресной команды;

  2. Часто в качестве операндов используются результаты предыдущих операций, хранимых в регистрах мп. В этом случае трёхадресный формат используется неэффективно.

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

Это противоречие преодолевается расширением кодов операций в команде.

Так, для задания небольшой группы основных операций (арифметических и т.п.) используется короткий код операции, а получаемая при этом сравнительно большая адресная часть команды позволяет реализовать гибкую адресацию (например, двухадресную с многими модификациями).

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

В пределе расширяемый код операций занимает весь формат команды (безадресная команда).

Приведённые структуры команд достаточно схематичны. В действительности адресные поля команд большей частью содержат не сами адреса, а только информацию, позволяющую определить действительные (исполнительные) адреса операндов в соответствии с используемыми в командах способами адресации.

8.2. Способы адресации, основанные на прямом использовании кода команды.

Следует различать понятия адресный код и исполнительный адрес.

Адресный код АК – это информация об адресе операнда, содержащаяся в команде.

Исполнительный адрес АИ – это номер ячейки памяти, к которой производится фактическое обращение.

Адресный код, как правило, не совпадает с исполнительным адресом.

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

При непосредственной адресации в команде содержится не адрес операнда, а непосредственно сам операнд.

В этом случае не требуется ячейки памяти для хранения операнда, а значит не требуется и обращения к памяти для его выборки. В результате уменьшается время выполнения программы и занимаемого ею объёма памяти.

Непосредственная адресация удобна при работе с различного рода константами.

При прямой адресации исполнительный адрес совпадает с кодом адреса команды.

Укороченная адресация используется для уменьшения длины кода команды.

Суть способа сводится к тому, что в команде задаются только младшие разряды адресов, а старшие подразумеваются нулевыми.

Такая адресация позволяет использовать только небольшую группу фиксированных ячеек с короткими адресами и поэтому может применяться лишь совместно с другими способами адресации.

Косвенная адресация используется для преодоления ограничений короткого формата команды.

Адресный код команды указывает адрес ячейки памяти, в которой находится адрес операнда или команды.

Таким образом, косвенная адресация может быть иначе определена как "адресация адреса".

Данный вид адресации указывается либо кодом операции команды, либо её специальным разрядом – указателем адресации (УА).

В УА цифра 0 означает, что адресная часть команды является прямым адресом, а цифра 1 – косвенным адресом.

Иногда используется многоступенчатая косвенная адресация. В этом случае УА содержится и в ячейках памяти.

Адреса последовательно выбираются из памяти до тех пор, пока не будет найдена ячейка, в которой УА определит прямую адресацию. Адрес из этой последней ячейки и является искомым исполнительным адресом.

В МП широко применяется совместное использование регистровой и косвенной адресаций.

Пусть, например, необходимо передать число 4527 из Рг5 РОНа МП в оперативную память по адресу 1765.