В общем случае, команда содержит следующую информацию:
- код выполняемой операции;
- указания по определению операндов (или их адресов);
- указания по размещению получаемого результата.
В зависимости от количества операндов, команды бывают:
- одноадресные;
- двухадресные;
- трехадресные;
- переменноадресные.
Команды хранятся в ячейках памяти в двоичном коде.
В современных компьютерах длина команд переменная (обычно от двух до четырех байтов), а способы указания адресов переменных весьма разнообразные.
Рассмотрим несколько возможных вариантов команды сложения (англ. add — сложение), при этом вместо цифровых кодов и адресов будем пользоваться условными обозначениями:
- одноадресная команда add x (содержимое ячейки x сложить с содержимым сумматора, а результат оставить в сумматоре)
add | x |
- двухадресная команда add x, y (сложить содержимое ячеек x и y, а результат поместить в ячейку y)
add | x | y |
- трехадресная команда add x, y, z (содержимое ячейки x сложить с содержимым ячейки y, сумму поместить в ячейку z)
|
|
add | x | y | z |
Выполнение команды можно проследить по схеме (рис. 3.1).
Как пpавило, этот процесс разбивается на следующие этапы:
- из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; содержимое счетчика команд при этом увеличивается на длину команды;
- выбранная команда передается в устройство управления на регистр команд;
- устройство управления расшифровывает адресное поле команды;
- по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;
- УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными;
- результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;
- все предыдущие этапы повторяются до достижения команды “стоп”.