Четвертый BORLAND С++ и его окружение

       

Регистры общего назначения


Аккумулятор (математические операции) Базовый регистр (индексирование)  
Счетчик (индексирование)  
Регистр данных

AX AH AL
BX BH BL
CX CH CL
DX DH DL


только 80386 286/386 все процессоры 80х86

31 23 15 7 0



V R N IOP O D I T S Z A P C

Виртуальный режим 80х86

Возобновление

Вложенная задача

Уровень защиты ввода-вывода

Переполнение

Направление

Разрешение прерывания

Прерывание

Знак

Признак нуля

Вспомогательный перенос

Четность

Перенос

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

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

арифметических и логических операций.

Прочие флаги управляют режимом операций процессора 80х86.

Флаг направления управляет направлением, в котором строковые инструкции выполняют перемещение, а флаг прерывания управляет тем,

будет ли разрешено внешним аппаратным средствам, таким, например,

как клавиатура или модем, временно приостанавливать текущий код

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

перехвата используется только программным обеспечением, которое

служит для отладки другого программного обеспечения (отладчики).

Регистр флагов не считывается и не модифицируется непосредственно. Вместо этого регистр флагов управляется в общем случае с помощью специальных инструкций (таких, как CLD, STI и CMC), а также с помощью арифметических и логических инструкций, модифицирующих отдельные флаги. И наоборот, содержимое отдельных разрядов регистра флагов влияет на выполнение инструкций (например, JZ, RCR и MOVSB). Регистр флагов не используется на самом деле,

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


Содержание раздела