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