logo search
Шпоры по ВТ

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

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

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

Исполнительный адрес АИ – это номер ячейки памяти, к которой производится фактическое обращение. Адресный код, как правило, не совпадает с исполнительным адресом. Способы, в которых исполнительный адрес определяется значением адресного кода команды, включают непосредственную, прямую, укороченную, регистровую, косвенную, автоинкрементную и автодекрементную адресации. При непосредственной адресации в команде содержится не адрес операнда, а непосредственно сам операнд.

В этом случае не требуется ячейки памяти для хранения операнда, а значит не требуется и обращения к памяти для его выборки. В результате уменьшается время выполнения программы и занимаемого ею объёма памяти. Непосредственная адресация удобна при работе с различного рода константами. При прямой адресации исполнительный адрес совпадает с кодом адреса команды. Укороченная адресация используется для уменьшения длины кода команды. Суть способа сводится к тому, что в команде задаются только младшие разряды адресов, а старшие подразумеваются нулевыми. Такая адресация позволяет использовать только небольшую группу фиксированных ячеек с короткими адресами и поэтому может применяться лишь совместно с другими способами адресации. Косвенная адресация используется для преодоления ограничений короткого формата команды. Адресный код команды указывает адрес ячейки памяти, в которой находится адрес операнда или команды. Таким образом, косвенная адресация может быть иначе определена как "адресация адреса".Данный вид адресации указывается либо кодом операции команды, либо её специальным разрядом – указателем адресации (УА).В УА цифра 0 означает, что адресная часть команды является прямым адресом, а цифра 1 – косвенным адресом. Иногда используется многоступенчатая косвенная адресация. В этом случае УА содержится и в ячейках памяти. Адреса последовательно выбираются из памяти до тех пор, пока не будет найдена ячейка, в которой УА определит прямую адресацию. Адрес из этой последней ячейки и является искомым исполнительным адресом. В МП широко применяется совместное использование регистровой и косвенной адресаций. Пусть, например, необходимо передать число 4527 из Рг5 РОНа МП в оперативную память по адресу 1765.

Длина адресных полей достаточна лишь для указания коротких номеров регистров, т.е. не позволяет задать в команде полный адрес ячейки памяти. Поэтому операнд 4527 указывается регистровой прямой адресацией (УА=0), а для задания адреса 1765 приходится воспользоваться регистровой косвенной адресацией (УА=1), указывая номер регистра (здесь Рг3), предварительно загруженного полным адресом ячейки.

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

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