ФОРМАТЫ КОМАНД


Формат команды процес­сора определяет способ представления команды в памяти и показывает ее постоянные составные части (поля). Несколь­ко типичных форматов команд микропроцессора К1810ВМ86 приведены на рис. 2.9, а полный перечень форматов команд дается в приложении. Длина команд варьируется от одного байта до шести. В первых одном или в двух байтах команды находятся код операции и указание на режим’ адресации. После них могут находиться:

1) двухбайтовый эффективный адрес (при прямой адреса­ции);

2) одно- или двухбайтовое смещение (при относительных способах адресации);

3) одно- или двухбайтовый непосредственный операнд (при непосредственном способе адресации);

4) двухбайтовое смещение с последующим одно- или двухбайтовым непосредственным операндом (при относитель­ных способах адресации с непосредственными данными).

clip_image002

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

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

В большинстве команд имеются следующие однобитовые поля:

поле W: если команда может оперировать байтом или словом, в коде операции имеется бит W, который определяет операцию с байтом (W = 0) или со словом (W = 1);

поле D: содержится в двухоперандных командах; одним из операндов должен быть регистр, определяемый Полем REG; в таких командах бит D определяет направление передачи данных в результате выполнения операции и показывает, чем является регистр: источником операнда (D = 0) или приемни­ком результата (D = 1);

поле С: 8-битовое число в дополнительном Коде можно расширить до 16-битового в дополнительном коде, если сде­лать все биты старшего байта числа равными старшему биту младшего байта; например, — 5 в дополнительном коде пред­ставляется как 11111011 и 11111111111 ПС-11. Такая операция называется расширением знака (или расширение со знаком); бит С используется вместе с битом W в командах с непосред­ственным операндом и расшифровывается следующем образом:

8-битовый операнд C:W = 00;

8-битовый операнд с расширением до 16-бит — C:W =11;

16-битовый операнд C:W = 01.

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

поле REG: определяет регистр общего назначения, учас­твующий в операции; длина поля три бита; адреса регистров (т.е. их двоичные обозначения) приведены в приложении; не­однозначности использования, напримгр, 000 для указания ре­гистров АХ и AL не возникает, так как нужный регистр оп­ределяется кодом операции или полем W;

поле SR: задает используемый в команде сегментный регистр; длина поля два бита; адреса сегментных регистров (т.е. их двоичные обозначения) приведены в приложении;

поле MOD: используется совместно с R/M и задает мо­дификацию способа адресации операнда в памяти и определя­ет длину смещения, непосредственно следующего после кода операции; длина поля два бита; способ кодирования поля MOD приведен в приложении;

поле R/M: определяет способ адресации операнда в памя­ти; длина поля три бита; совместно с полем MOD и DISP позволяет задать любой из описанных способов адресации;

поле DISP: задает смещение для относительных способов адресации и может отсутствовать в команде; поле DATA: за­дает непосредственные данные для непосредственного способа адресации; поле может отсутствовать в команде; длина поля один или два байта.

Загрузка...