Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
госы 2008 / Госы3.doc
Скачиваний:
82
Добавлен:
29.05.2015
Размер:
3.03 Mб
Скачать

Вопрос 4 Структура и форматы команд

Команда представляет собой код, определяющий операцию ВМ и данные , участвующие в операции. Команда содержит также в явной и не явной форме информацию об адресе , по которому помещается результат операции, и об адресе следующей команды.

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

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

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

в) команды логических операций;

г) команды передачи кодов;

д) команды операций ввода — вывода;

е) команды передачи управления;

ж) команды задания режима работы машины и др.

В команде, как правило, содержится не сами операнды, а информация об адресах ячеек памяти или регистрах, в которых они находятся.

Команда в общем случае состоит из операционной и адресной частей (рис. 2.2,а).

В свою очередь, эти части, что особенно характерно для адресной части, могут состоять из нескольких полей.

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

Структура команды определяется составом, назначением и расположением полей в команде.

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

Если ЭВМ выполняет М различных операций, то число разрядов в коде операции

nкоп ³ log2 М, например, при М=200, nкоп = 8.

Если основная память содержит S адресуемых ячеек (байт), то для явного представления только одного адреса необходимо в команде иметь адресное поле для одного операнда с числом разрядов

nА ³ log2 S, например, при S = 64 Мб, nА = 26.

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

Изменения классических структур команд.

Чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна , как это показано на рис.2.2,б, содержать следующую информацию.

А1 , А2 — адреса операндов, А3 — адрес результата, А4 — адрес следующей команды (принудительная адресация команд).

Такая структура приводит к большей длине команды (например, при S = 200, S = 32 Мб длина команды 108 бит) и неприемлема для прямой адресации операндов основной памяти. В компьютерах с RISC архитектурой четырехадресные команды используются для адресации операндов, хранящихся в регистровой памяти процессора.

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

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

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

В одно адресной команде (рис. 2.2, д) подразумеваемые адреса имеют уже и результат операции и один из операндов. Один из операндов указывается адресом в команде, в качестве второго используется содержимое регистра процессора, называемого в этом случае регистром результата или аккумулятором (Акк). Результат операции записывается в тот же регистр:

Акк := Акк * ОП[А1]

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

Соседние файлы в папке госы 2008