ВОЗДЕЙСТВИЕ НА ФЛАЖКИ
Мы говорили о воздействии на флажки некоторых команд, а здесь мы объединим
всю информацию и полностью рассмотрим функционирование флажков. Флажки IOPL и NT
относятся к механизму защиты процессора.
Остальные флажки можно разделить на флажки состояния и флажки управления.
Первые из них показывают определенные свойства результатов команд, а вторые -
управляют работой процессора.
Показаны команды, результаты которых влияют на флажки состояния, и команды,
служащие для задания состояния флажков управления. Попробуем разобраться в
поведении некоторых флажков. Команды сложения и вычитания воздействуют на все
флажки состояния следующим образом: флажок переполнения OF и флажок переноса CF
показывают, что знаковый или беззнаковый результат операции находится вне
диапазона представимых чисел; флажок вспомогательного переноса AF показывает
необходимость коррекции в десятичной операции; флажки знака SF, нуля ZF и
паритета PF сигнализируют о том, что результат отрицательный, нулевой или
содержит четное число единиц. К командам сложение и вычитания близки команды
сравнения СМР, CMPS, SCAS и команда изменения знака NEG. Команды сравнения
производят вычитание, и флажки отражают особенности результата вычитания.
Команда NEG прибавляет 1 (после инвертирования всех бит), и флажки отражают
результат этого сложения. Команда NEG устанавливает флажок CF в 1 в случае
нулевого операнда, а флажок OF в случае, когда операнд равен -128 (8 бит) или
-32 788 (16 бит).