Выполнение команд

Команды

Команда — это описание элементарной операции, которую должен выполнить компьютер.

В общем случае, команда содержит следующую информацию:

  • код выполняемой операции;
  • указания по определению операндов (или их адресов);
  • указания по размещению получаемого результата.

В зависимости от количества операндов, команды бывают:

  • одноадресные;
  • двухадресные;
  • трехадресные;
  • переменноадресные.

Команды хранятся в ячейках памяти в двоичном коде.

В современных компьютерах длина команд переменная (обычно от двух до четырех байтов),а способы указания адресов переменных весьма разнообразные. В адресной части команды может быть указан, например:

  • сам операнд (число или символ);
  • адрес операнда (номер байта, начиная с которого расположен операнд);
  • адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда), и др.

Рассмотрим несколько возможных вариантов команды сложения (англ. 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

 

 

Выполнение команды можно проследить по схеме:


Общая схема компьютера

Как пpавило, этот процесс разбивается на следующие этапы:

  • из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; содержимое счетчика команд при этом увеличивается на длину команды;
  • выбранная команда передается в устройство управления на регистр команд;
  • устройство управления расшифровывает адресное поле команды;
  • по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;
  • УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными;
  • результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;
  • все предыдущие этапы повторяются до достижения команды “стоп”.