Структура и форматы команд процессора

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

Структура команды подразделяется на операционную и адресную части.

Команды должна содержать:

• код операции — определяет, какие именно преобразования должен выполнить процессор с переданными ему элементами данных;

• ссылка на операнд (указание на адрес исходных данных, над которыми операция производится)— в процессе выполнения машинной команды одни данные преобразуются в другие; те данные, которые преобразуются, — операнды (может быть один операнд или два) — должны быть каким-то образом специфицированы;

• ссылка на результат (указание на адрес, по которому должен быть помещен результат операции) — определяет, что сделать с результатом преобразования операндов (чаще всего, куда его поместить);

• ссылка на следующую выполняемую команду— определяет, откуда ЦП должен извлечь следующую команду после завершения текущей.

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

- оперативная или виртуальная память — как и в случае с адресом следующей команды, информация о размещении операндов или результата может иметь вид адреса в оперативной или виртуальной памяти;

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

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

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

Используют одно, двух и трехадресные форматы команд.

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

В двухадресной адрес результата и второгооперанда один и то же.

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

Безадресная команда содержит только код операции, а информация для нее заранее помещена в определенный регистр.