Вопрос 4 Структура и форматы команд
Команда представляет собой код, определяющий операцию ВМ и данные , участвующие в операции. Команда содержит также в явной и не явной форме информацию об адресе , по которому помещается результат операции, и об адресе следующей команды.
По характеру выполняемых операций различают следующие основные группы команд:
а) команды арифметических операций над числами с фиксированной и плавающей точками;
б) команды десятичной арифметики;
в) команды логических операций;
г) команды передачи кодов;
д) команды операций ввода — вывода;
е) команды передачи управления;
ж) команды задания режима работы машины и др.
В команде, как правило, содержится не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся.
Команда в общем случае состоит из операционной и адресной частей (рис. 2.2,а).
В свою очередь, эти части, что особенно характерно для адресной части, могут состоять из нескольких полей.
Операционная часть — содержит код операции (КОП) , который задает вид операции (сложение, умножение и др.) . Адресная часть — содержит информацию об адресах операндов и результата операции, а в некоторых случаях информацию об адресах следующей команды.
Структура команды определяется составом, назначением и расположением полей в команде.
Форматом команды называют ее структуру с разметкой номеров разрядов (бит), определяющих границы отдельных полей команды, или с указанием числа бит в определенных полях.
Вместе с тем для упрощения аппаратуры и повышения быстродействия ЭВМ длина формата команды должна быть согласована с выбираемой исходя из требований к точности вычислений длиной обрабатываемых машиной слов (операндов), составляющей для большинства применений 32 бит., с тем чтобы для операндов и команд можно было эффективно использовать одни и те же память и аппаратные средства обработки информации. Формат команды должен быть по возможности короче, укладываться в машинное слово или полуслово, а для ЭВМ с коротким словом (8-16 бит) должен быть малокритичным машинному слову.
Изменения классических структур команд.
Чтобы команда содержала в явном виде
всю необходимую информацию о задаваемой
операции, она должна , как это показано
на рис.2.2,б, содержать следующую информацию.
А1 , А2 — адреса операндов, А3 — адрес результата, А4 — адрес следующей команды (принудительная адресация команд).
Такая структура приводит к большей длине команды (например, при S = 200, S = 32 Мб длина команды 108 бит) и неприемлема для прямой адресации операндов основной памяти. В компьютерах с RISC архитектурой четырехадресные команды используются для адресации операндов, хранящихся в регистровой памяти процессора.
В трех адресной команде (рис.2.2, в) первый и второй адреса указывают ячейки памяти, в которых расположены операнды, а третий определяет ячейку, в которую помещается результат операции.
В одно адресной команде (рис. 2.2, д) подразумеваемые адреса имеют уже и результат операции и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумулятором (Акк). Результат операции записывается в тот же регистр:
Акк := Акк * ОП[А1]
Наконец, в некоторых случаях возможно использование без адресных команд (рис.2.2, е), когда подразумеваются адреса обоих операндов и результата операции, например при работе со стековой памятью.
