WikiDer > Флаг четности
В компьютер процессоры то флаг четности указывает, является ли количество установленных бит нечетным или четным в двоичном представлении результата последней операции. Обычно это один бит в регистре состояния процессора.
Например, предположим, что на машине установлен флаг четности, указывающий на четность. Если бы результат последней операции был 26 (11010 в двоичном формате), флаг четности был бы 0 поскольку количество установленных битов странный. Аналогично, если бы результат был 10 (1010 в двоичном формате), тогда флаг четности будет равен 1.
процессоры x86
В x86 процессоров флаг четности отражает четность только младший байт результата и устанавливается, если количество установленных битов единиц четное (другими словами, бит четности устанавливается, если сумма битов четна). В соответствии с 80386 Intel вручную флаг четности изменяется в процессорах семейства x86 по следующей инструкции:
- Все арифметические инструкции;
В условных переходах используется флаг четности, например, где инструкция JP переходит к заданной цели, когда установлен флаг четности, а инструкция JNP перескакивает, если он не установлен. Флаг также может быть прочитан напрямую с помощью таких инструкций, как PUSHF, которые помещают регистр флагов в стек.
Одной из распространенных причин для проверки флага четности является проверка несвязанного флага FPU. В FPU имеет четыре флага состояния (от C0 до C3), но они не могут быть протестированы напрямую, и вместо этого должны быть сначала скопированы в регистр флагов. Когда это происходит, C0 помещается в нести флаг, C2 во флаге четности и C3 в нулевой флаг.[1] Флаг C2 устанавливается, например, когда несравненный плавающая точка значения (NaN или неподдерживаемый формат) сравниваются с инструкциями FUCOM.