Непосредственная адресация

 

При непосредственной адресации (НА) в адресном поле команды вместо адреса содержится непосредственно сам операнд (рис. 15). Этот способ может приме­няться при выполнении арифметических операций, операций сравнения, а также для загрузки констант в регистры.

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

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

В 50-60% команд с непосредственной адресацией длина операнда не превыша­ет 8 бит, а в 75-80% — 16 бит. Таким образом, в подавляющем числе случаев шест­надцати разрядов вполне достаточно, хотя для вычисления адресов могут потре­боваться и более длинные константы.

Непосредственная адресация сокращает время выполнения команды, так как не требуется обращение к памяти за операндом. Кроме того, экономится память, поскольку отпадает необходимость в ячейке для хранения операнда. В плане эф­фективности этот способ можно считать «идеальным» (СНА = 0, ТНА = 0), и его мож­но рекомендовать к использованию во всех ситуациях, когда тому не препятству­ют вышеупомянутые ограничения.