Представление команд в ЭВМ

 

Команда (инструкция) – элемент программы, приводящий к выполнению определенных действий.

Команда представляет собой код, содержащий информацию, необходимую для управления машинной операцией. Под операцией понимают преобразование информации, выполняемое машиной под воздействием одной команды. Содержанием машинной операции может быть запоминание, передача, арифметическое и логическое преобра­зование некоторых машинных слов (операндов).

Формат команды – количество и интерпретация разрядов, представляющих машинную команду.

Команда состоит из операционной и адресной частей. Опе­рационная часть содержит код операции (КОП), т.е. некоторое число, которое задает вид операции (сложение, умножение, передача и т.д.). Адресная часть команды содержит информацию об адресах операндов и результатах операции, а в некоторых случаях информацию об адресе следующей команды. При описании команд приходится указывать, какие операнды в них допустимы, а какие – нет. Результат работы команды помещается в регистр или ячейку памяти, откуда берется один из операндов.

Количество двоичных разрядов, отведенных под код операции, выбирается таким, чтобы можно было представить все выполняемые операции. Если ЭВМ выполняет М различных операции, то число разрядов в КОП должно быть не меньше log2M.

Для упрощения аппаратуры и увеличения быстродействия ЭВМ длина формата команды должна быть согласована с выбираемой (с учетом требований точности вычислений) длиной обрабатываемых машиной слов (операндов) с тем, чтобы для операндов и команд можно было эффективно использовать одни и те же память и аппаратные средства обработки информации. Это согласование достигается укорачиванием формата команды путём применения подразумеваемой, а также относительной и косвенной адресации и некоторых других приёмов.

Обычно код команды имеет формат машинного слова или полуслова, реже полутора или двух слов. В некоторых машинах для представления команд используется несколько различных форматов. На рисунке 3 схематически показаны различные структуры кода команды.

В самом общем случае адресная часть должна содержать четыре адреса или адресных кода (рис.3,а) для указания ячеек, содержащих два операнда, участвующих в операции, ячейки, в которую помещается результат операции, и ячейки, содержащей следующую команду. Такой порядок выборки команд называется принудительным. Он исполь­зовался в некоторых первых моделях ЭВМ. Четырехадресные команды в настоящее время не применяются.

Можно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной в ячейке k, выполняется команда из следующей по порядку (k+1)-й ячейки. Такой порядок выборки команд называется естественным. Он нарушается только специальными командами. В таком случае теряется необхо­димость указывать в команде адрес следующей команды.

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

 

Рис. 3. Представление команд

 

По характеру выполняемых операций различают следующие основные группы команд:

 команды арифметических операций для чисел с фиксированной и плавающей запятой;

 команды десятичной арифметики;

 команды логических (поразрядных) операций (И, ИЛИ и др.);

 команды пересылки;

 команды операций ввода-вывода;

 команды управления порядком исполнения команд (команды передачи управления) и некоторые другие.