Нулевой флаг - Zero flag

Флаг нуля является один битым флагом , который является центральным элементом на большинстве обычных процессоров архитектур (включая x86 , ARM , PDP-11 , 68000 , 6502 , и многие другие). Он часто хранится в специальном регистре, обычно называемом регистром состояния или регистром флагов , вместе с другими флагами. Нулевой флаг обычно обозначается аббревиатурой Z или ZF или аналогичным в большинстве языков документации и ассемблера.

Наряду с флагом переноса , с флагом знака и флагом переполнения , нулевой флаг используется , чтобы проверить результат арифметической операции, в том числе побитового логических инструкций . Он устанавливается в 1 или истина, если арифметический результат равен нулю, и сбрасывается в противном случае. Это включает в себя результаты, которые не сохраняются, поскольку большинство традиционных наборов команд реализуют команду сравнения как вычитание, при этом результат отбрасывается. Также часто в процессорах используется команда побитового И, которая не сохраняет результат.

Логическая формула нулевого флага для двоичного операнда с дополнением до двух - НЕ (ИЛИ (все биты рассматриваемого операнда)).

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

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