Порядок описания команд будет следующим:
-
название команды с расшифровкой ее мнемонического обозначения
— это облегчит процесс запоминания и последующего использования команды
в соответствии с ее функциональным назначением;
-
синтаксическое описание команды, поясняющее возможные сочетания
операндов для данной команды. При этом сложные синтаксические описания
будут приведены в виде синтаксических диаграмм, что позволит в наиболее
компактной форме изобразить все возможные сочетания операндов;
-
состояние флагов после выполнения команды;
-
описание типового применения команды с примером и (или) ссылка
на урок, в котором демонстрируется пример применения команды;
-
номера занятий и приложений, а также список команд, которые
функционально связаны с данной командой.
Для описания команд приняты обозначения:
-
Для описания состояния флагов после выполнения некоторой
команды будем использовать выборку из таблицы, отражающей структуру регистра
флагов eflags:
| 31 |
18 |
17 |
16 |
15 |
14 |
1312 |
11 |
10 |
09 |
08 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
| 0 |
0 |
VM |
RF |
0 |
NT |
IOPL |
OF |
DF |
IF |
TF |
SF |
ZF |
0 |
AF |
0 |
PF |
1 |
CF |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В нижней строке этой таблицы приводятся значения флагов после
выполнения команды. При этом используются следующие обозначения:
-
1 — после выполнения команды флаг устанавливается
(равен 1);
-
0 — после выполнения команды флаг сбрасывается (равен
0);
-
r — значение флага зависит от результата работы команды;
-
? — после выполнения команды флаг не определен;
-
пробел — после выполнения команды флаг не изменяется;
-
Для представления операндов в синтаксических диаграммах используются
следующие обозначения:
-
r8, r16, r32 — операнд в одном из регистров размером
байт, слово или двойное слово;
-
m8, m16, m32, m48 — операнд в памяти размером байт,
слово, двойное слово или 48 бит;
-
i8, i16, i32 — непосредственный операнд размером байт,
слово или двойное слово;
-
a8, a16, a32 — относительный адрес (смещение) в сегменте
кода.
-
Описанная в данном приложении система команд в полном объеме
поддерживается микропроцессором Pentium. Предыдущие модели микропроцессора
могут не поддерживать отдельные команды. Чтобы прояснить этот момент, мы
будем указывать в примерах для каждой команды директиву типа .286. Это
будет означать, что описываемая команда поддерживается всеми моделями микропроцессора,
начиная с i286. Если ничего не указывается, то это означает, что данная
команда работает на всех моделях микропроцессоров Intel, начиная с i8086/8088.