Биты направления и знака являются частью регистра флагов процессоров x86. Поскольку младшие восемь битов флагов имеют ту же структуру, что и флаги 8080/8085 / Z80, я предполагаю, что бит в индексе 1 является битом со знаком. Положение бита направления не изменилось, так как он был введен с процессорами 8086/88 в конце 70-х, если мне не изменяет память.
Бит знакового бита изменяется в результате арифметической операции и является копией старшего бита результата операции. INC и DEC не влияют на бит знака.
Бит направления управляется с помощью инструкции cld / std и контролирует, будут ли инструкции блока (cmps, ins, lods, movs, outs, scas и stos) постинкрементно / -decrement.
Ими также можно манипулировать через стек (хотя это, возможно, не имеет смысла со знаком бит)
pushf
and dword ptr [esp],SOME_MASK
popf
В качестве примера можно использовать «и»: также можно использовать xor и другие.
Если вы манипулируете флагом, вам может потребоваться восстановить его прежнее значение, поскольку некоторые библиотеки времени выполнения предполагают, что он не был изменен.