Регистр флагов

Содержит битовые признаки (флаги), определяющие ход выполнения программы. Всего 9 флагов, 6 из них статусные, отражают результат выполнения операции, а 3 – управляющие, непосредственно определяют режим выполнения программы. Флаги независимы друг от друга.

OF DF IF TF

15 14 13 12 11 10 9 8

SF ZF AF PF CF

7 6 5 4 3 2 1 0

Статусные флаги:

CF – флаг переноса. Фиксирует наличие переноса (1 или 0) из старшего разряда при арифметических операциях и сдвигах.

PF – флаг чётности. Проверяет чётность (1) восьми младших битов результата операции (число единиц в младшем байте результата)

AF – флаг логического (вспомогательного) переноса в двоично-десятичной арифметике. Устанавливается в 1, если происходит перенос или заём четвёртого справа бита однобайтового операнда.

ZF – флаг нуля. Устанавливается в 1, если результат операции равен 0, иначе в 0.

SF – флаг знака. Значение зависит от результата арифметической операции: при положительном – 0, отрицательном - 1.

OF – флаг переполнения. Устанавливается при арифметическом переполнении: если при выполнении арифметической операции со знаком есть перенос в знаковый разряд, если частное от деления переполняет регистр результата и т.д., то устанавливается в 1.

Управляющие флаги.

DF – флаг направления. Используется в строковых операциях для задания направления обработки данных. Если 0, то значения регистров SI/DI в каждой команде увеличивается на 1 – (обработка справа налево), если 0, то слева направо.

IF – флаг прерываний. При его значении 0 прерывания запрещены, при 1 разрешены

TF – флаг системного прерывания. 1 в этом флаге переводит ЦП в режим пошаговой работы.

.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: