Если в качестве операнда использовать содержимое одного из регистров
процессора и туда же записывать результат операции то можно обойтись и
одним, фактически присутствующим в команде адресом. Регистр процессора,
содержимое которого по умолчанию используется в операциях и куда
записывается результат операции называется накапливающим регистром
или аккумулятором.
В зависимости от количества фактически присутствующих в команде
адресов она называется безадресной, одноадресной, двухадресной и т. д. В
современных процессорах обычно применяются не более чем двухадресные
команды, причём адресность команд является переменной величиной и
именно она обычно влияет на размер команды. Так, для унарных операций
(поразрядная инверсия, изменение знака и др.) требуется всегда на один адрес
меньше, чем для бинарных; команды переходов требуют указания одного
адреса, некоторые команды, изменяющие состояние процессора, вообще не
требуют операндов.
Непосредственная адресация. В программах очень часто необходимо
выполнять операции, в которых один из операндов является константой, не
изменяющейся в процессе работы программы. Можно записать такую
константу в ячейку памяти и адресовать ее обычным образом, но лучше для
этой цели использовать непосредственную адресацию (операнд при этом
записывается непосредственно в команде вместо одного из адресов). Такой
способ адресации ускоряет выполнение команды, так как не требуется цикла
обращения к памяти за операндом (он выбран вместе с командой), и
одновременно экономит память.
Прямая адресация. Указание в команде прямого адреса операнда, т. е.
номера ячейки памяти, в которой он записан, - простой и достаточно
универсальный способ адресации, широко используемый и в ЭВМ первого и
второго поколений. В настоящее время он находит ограниченное
использование из-за трудности: