Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В компьютерных процессорах флаг четности указывает на то , что число установленных битов четным или нечетным в двоичном представлении результата последней операции. Обычно это один бит в регистре состояния процессора.

Например, предположим, что на машине установлен флаг четности, указывающий на четность. Если бы результатом последней операции было 26 (11010 в двоичном формате), флаг четности был бы равен 0, поскольку количество установленных битов нечетное . Точно так же, если бы результат был 10 (1010 в двоичном формате), то флаг четности был бы равен 1.

процессоры x86 [ править ]

В процессорах x86 флаг четности отражает четность только наименее значимого байта результата и устанавливается, если количество установленных битов, равное единицам, является четным (другими словами, бит четности устанавливается, если сумма битов равна четный). Согласно руководству Intel 80386 , флаг четности изменяется в семействе процессоров x86 с помощью следующих инструкций:

  • Все арифметические инструкции;

В условных переходах используется флаг четности, где, например, инструкция JP переходит к заданной цели, когда установлен флаг четности, а инструкция JNP перескакивает, если он не установлен. Флаг также может быть прочитан напрямую с помощью таких инструкций, как PUSHF, который помещает регистр флагов в стек.

Одной из распространенных причин для проверки флага четности является проверка несвязанного флага FPU. ФПУ имеет четыре условие флаги (С0-С3), но они не могут быть проверены непосредственно, а вместо этого должно быть сначала копируется в регистре флагов. Когда это происходит, C0 помещается во флаг переноса , C2 - во флаг четности, а C3 - в нулевой флаг . [1] Флаг C2 устанавливается, когда, например, несравнимые значения с плавающей запятой ( NaN или неподдерживаемый формат) сравниваются с инструкциями FUCOM.

Ссылки [ править ]

См. Также [ править ]