Флаг четности - 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.

Ссылки

  1. ^ "Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 1: Базовая архитектура" . Январь 2011. С. 97–98.

Смотрите также