logo search
Шпоры по ВТ

40. Структура команд мп.

Обработка информации и функционирование МП обеспечиваются с помощью программного управления. Программа записывается во внешнем ОЗУ в виде последовательности команд.

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

По функциональному назначению различаются команды передачи данных, обработки данных, передачи управления и дополнительные команды.

Команды передачи данных включают в себя команды передачи кодов между регистрами МП, между МП и внешней памятью, между МП и внешними устройствами.

Команды обработки данных подразделяются на арифметические, логические и команды сдвига.

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

Дополнительные команды предназначены для задания останова программы, начальной установки аппаратных средств, реализации ожидания.

В общем случае команда состоит из операционной и адресной частей:

Операционная часть содержит код операции (КОП), который задаёт вид операции (сложение, умножение, передача и т.д.).

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

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

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

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

Вместе с тем для упрощения аппаратной части и повышения быстродействия формат команды должен быть как можно короче.

Поэтому проблема выбора формата команд и кодирование полей команд МП имеет особое значение.

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

Первые два адреса указывают ячейки памяти, содержащие операнды, третий адрес – ячейку памяти, в которую помещается результат операции, и четвёртый адрес – ячейку памяти, содержащую следующую команду.

Такой порядок выборки команд называется принудительным.

Четырёхадресный формат команды неэффективен и в настоящее время не применяется.

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

Такой порядок выборки команд называется естественным. Он нарушается только специальными командами.

В этом случае отпадает необходимость указывать в явной форме адрес сле-дующей команды. В результате приходим к трёхадресной команде.

Можно условиться, что результат операции всегда помещается на месте одного из операндов, например, первого. В итоге получаем двухадресную команду:

Операция, описываемая двухадресной командой, символически может быть представлена в виде:

ОП[A1] := ОП[A1]*ОП[A2],

где знак * обозначает символ операции (+, - и т.п.).

Запись читается так: в ячейку оперативной памяти с номером А1 помещается результат операции над числами, размещёнными в оперативной памяти по адресам А1 и А2.

Таким образом, в этом случае для результата операции используется подразумеваемый адрес.

В одноадресной команде подразумеваемые адреса имеют и результат операции и один из операндов.

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

Символическая запись соответствующей операции имеет вид:

Ак := Ак*ОП[A].

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

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

В современных МП применяют, как правило, двух- и одноадресные команды. Обусловлено это следующими причинами:

1) необходимость иметь большее число разрядов для представления адресов и кода операции приводит к недопустимо большой длине трёхадресной команды;

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

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

Это противоречие преодолевается расширением кодов операций в команде.

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

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

В пределе расширяемый код операций занимает весь формат команды (безадресная команда).

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