[ЭКЗАМЕН 04] Процессор 8086. Регистр флагов. - mRrvz/bmstu-asm GitHub Wiki
Регистры флагов в 8086.
Флаги - выставляются при выполнение операций, в основном арифметических. С помощью этих флагов можно определить что-нибудь определить, например было ли переполнение при последней выполненной операции.
Каждый флаг представляет собою 1 бит, выставляемый в 0 (флаг сброшен) или в 1 (флаг установлен). Не существует специальных команд, позволяющих обратится к этому регистру напрямую.
Хотя разрядность регистра FLAGS 16 бит, реально используют не все 16. Остальные были зарезервированны при разработке процессора, но так и не были использованны.
Вот за что отвечает каждый бит в регистре FLAGS:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CF | - | PF | - | AF | - | ZF | SF | TF | IF | DF | OF | IOPL | IOPL | NT | - |
■ CF (carry flag) - флаг переноса - устанавливается в 1, если результат предыдущей операции не уместился в приемник и произошел перенос или если требуется заем при вычитании. Иначе 0.
■ PF (parity flag) - флаг чётности - устанавливается в 1, если младший байт результата предыдущей операции содержит четное количество единиц.
■ AF (auxiliary carry flag) - вспомогательный флаг переноса - устанавливается в 1, если в результате предыдущей операции произошел перенос из 3 в 4 или заем из 4 в 3 биты.
■ ZF (zero flag) - флаг нуля - устанавливается в 1, если если результат предыдущей команды равен 0.
■ SF (sign flag) - флаг знака - всегда равен старшему биту результата.
■ TF (trap flag) - флаг трассировки - предусмотрен для работы отладчиков в пошаговом режиме. Если поставить в 1, после каждой команды будет происходить передача управления отладчику.
■ IF (interrupt enable flag) - флаг разрешения прерываний - если 0 процессор перестает обрабатывать прерывания от внешних устройств.
■ DF (direction flag) - флаг направления - контролирует поведение команд обработки строк. Если 0, строки обрабатываются слева направо, если 1 справа налево.
■ OF (overflowflag) - флаг переполнения - устанавливается в 1, если результат предыдущей операции над числами со знаком выходит за допустимые для них пределы.
■ IOPL (I/O privilege level) - уровень приоритета ввода-вывода - а это на 286, на не нужно пока.
■ NT (nested task) - флаг вложенности задач - а это на 286, на не нужно пока.
Следующий вопрос: Процессор 8086. Шина адреса. Сегментная модель памяти.
Предыдущий вопрос: Процессор 8086. Разрядность. Регистры.