Команда. Формат команды. Классификация команд. Особенности состава команд Intel.

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

ВВВВВВВВВВВВВ - совокупность сведений, представленных РІ РІРёРґРµ двоичных РєРѕРґРѕРІ, необходимых процессору для выполнения очередного шага.

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

Общая структура команды имеет следующий вид:

,т.е. операционная и адресная части.

 

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

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

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

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

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

Классификация команд по основным признакам:

 

Первую классификацию можно представить след. образом:

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

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

ВЁВВВ команды передачи данных (MOV AX, 0FFFh);

ВЁВВВ команды операций РІРІРѕРґР°/вывода (IN, OUT);

ВЁВВВ команды логических операций (AND, OR, NOT);

ВЁВВВ команды передачи управления (управление циклом — LOOP, условные переходы — JAE, JB);

ВЁВВВ команды задания режима работы машины Рё РґСЂ.

 

По адресности (количеству адресов в адресном поле) команды подразделяются на:

1) Трехадресные – А1, А2 – адреса операндов, А3 – адрес результата,

ОЗУ[А3]:=ОЗУ[А1]*ОЗУ[А2] - справедливо для прямой адресации

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

2) двухадресные – А1 является адресом первого операнда, А2 – адресом второго операнда, результат записывается либо по одному из адресов, либо остается в аккумуляторе:

ОЗУ[А1]:=ОЗУ[А1]*ОЗУ[А2] - результат записывается по одному из адресов,

АКК:=ОЗУ[А1]*ОЗУ[А2] - результат остается в аккумуляторе,

3) одноадресные. Здесь подразумеваемые адреса имеют Рё результат операции Рё РѕРґРёРЅ РёР· операндов. РћРґРёРЅ РёР· операндов указывается адресом РІ команде, РІ качестве второго используется содержимое регистра процессора, называемого РІ таком случае регистром результата или аккумулятором. Результат операции записывается РІ тот же регистр.

АКК:=ОЗУ[А1]*<АКК>, где * - арифметическая или логическая операция,

 

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

 

Для программиста наиболее естественны и удобны трехадресные команды. Однако из-за необходимости иметь большое число разрядов для представления адресов и кода операции длина трехадресной команды становится недопустимо большой, и ее не удается разместить в машинном слове. Следует отметить, что очень часто в качестве операндов исп-ся результаты операций, хранимые в регистрах машины. В этом случае выполняемые команды носят 1 и 2-х адресный характер, поэтому 3-х адресные - редко.

ВОбычно РІ Р­Р’Рњ используется несколько форматов команд разной длины. Р’ действительности же адресные поля команд большей частью содержат РЅРµ сами адреса, Р° только информацию, позволяющую определить действительные (исполнительные) адреса операндов РІ соответствии СЃ используемыми РІ командах способами адресации.

 

Для того, чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна содержать поле кода операции и четыре адреса для указания ячеек памяти, содержащих два операнда, участвующих в операции, ячейки, в которую помещается результат операции, и ячейки, содержащей следующую команд. Что делать с адресами операндов, мы уже рассмотрели. Порядок выборки команд, когда в ней содержится сразу адрес следующей команды, называется принудительным. Он использовался в некоторых первых моделях ЭВМ и в настоящее время не применяется.

ВМожно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной РїРѕ адресу Рљ (Рё занимающей L ячеек), выполняется команда РёР· (K+L)-Р№ ячейки. Такой РїРѕСЂСЏРґРѕРє выборки команд называется естественным. РћРЅ нарушается только специальными командами. Р’ таком случае отпадает необходимость указывать РІ команде РІ СЏРІРЅРѕР№ форме адрес следующей команды.