Форматы команд

Электронно-вычислительная машина должна получать данные из внешнего мира, обрабатывать их и отсылать результаты обратно. Она выполняет определенные операции в соответствии с определенными двоичными входными воздействиями. Эти входные воздействия, благодаря которым ЭВМ выполняет специфические операции, называются командами. Последовательность команд, которая заставляет ЭВМ выполнять эту задачу, называется программой, а совокупность команд, известных ЭВМ, называется ее системой команд.

Команды и данные в ЭВМ представлены в одинаковой форме, т. е. в виде двоичных чисел, которые ЭВМ заносит в память и передает по шине данных в ЦП. Таким образом, ЭВМ обрабатывает команды, которые представляют собой слова такой же длины, что и данные. Разница только в том, что команды ЭВМ засылает в регистр команд и в аешиф-ратор команд, в то время как данные отправляются ею в регистры данйых или в АЛУ (более подробно см. в гл. 7).

Каждая команда должна содержать значительную информацию. Она должна определить:

1) саму операцию. Часть команды, которая определяет эту операцию, называется кодом операции, или КОП;

2) источник данных. Эту информацию содержит поле адреса. Такие команды, как СЛОЖИТЬ или УМНОЖИТЬ (ADD или MULTIPLY), требуют двух операндов; команды, подобные СДВИНУТЬ  или ДОПОЛНИТЬ (SHIFT или COMPLEMENT), — только одного;

3) место назначения результата;

4) источник следующей команды.

Очевидно, что команда, которая содержит всю эту информацию (рис. 3.1), должна быть очень длинной. Например, если бы поле кода операции составляло 4 бита (что позволяет закодировать 24, или 16, рдзлидных операций) и каждый из адресов составлял 12 бит (что позволяет адресовать 212, или 4 Кбайт памяти), то общая длина команды доставила бы 40 бит. Очевидно, что с такой командой трудно было бы работать микро-ЭВМ, которая оперирует с 8- или 16-6 |тными словами. Тем не менее многие программы требуют более 4 Кбайт памяти и более 16 различных команд. Таким образом, часть информации, в которой нуждается ЭВМ, должна быть задана неявно и не зависеть от особенностей конкретной команды.