Команда — это описание элементарной операции, которую должен выполнить компьютер.
В общем случае, команда содержит следующую информацию:
· код выполняемой операции;
· указания по определению операндов (или их адресов);
· указания по размещению получаемого результата.
В зависимости от количества операндов, команды бывают:
· одноадресные;
· двухадресные;
· трехадресные;
· переменноадресные.
Команды хранятся в ячейках памяти в двоичном коде.
В современных компьютерах длина команд переменная (обычно от двух до четырех байтов), а способы указания адресов переменных весьма разнообразные. В адресной части команды может быть указан, например:
· сам операнд (число или символ);
· адрес операнда (номер байта, начиная с которого расположен операнд);
· адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда), и др.
Рассмотрим несколько возможных вариантов команды сложения (англ. 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. Общая схема компьютера
Как правило, этот процесс разбивается на следующие этапы:
· из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; содержимое счетчика команд при этом увеличивается на длину команды;
· выбранная команда передается в устройство управления на регистр команд;
· устройство управления расшифровывает адресное поле команды;
· по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;
· УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными;
· результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;
· все предыдущие этапы повторяются до достижения команды “стоп”.