Нулевой флаг
Эта статья в значительной степени или полностью опирается на один источник . ( июнь 2019 г. ) |
Нулевой флаг — это однобитный флаг, который является центральной функцией большинства традиционных архитектур ЦП (включая x86 , ARM , PDP-11 , 68000 , 6502 и многих других). Он часто хранится в специальном регистре, обычно называемом регистром состояния или регистром флагов , вместе с другими флагами. Нулевой флаг обычно обозначается сокращенно Z или ZF или аналогично в большинстве языков документации и ассемблера.
Наряду с флагом переноса , флагом знака и флагом переполнения нулевой флаг используется для проверки результата арифметической операции, включая побитовые логические инструкции . Ему присваивается значение 1 или true, если арифметический результат равен нулю, и сбрасывается в противном случае. Сюда входят результаты, которые не сохраняются, поскольку большинство традиционных наборов команд реализуют инструкцию сравнения как вычитание, при котором результат отбрасывается. Также часто процессоры имеют побитовую инструкцию И, которая не сохраняет результат.
Логическая формула нулевого флага для двоичного операнда с дополнением до двух — НЕ(ИЛИ(все биты рассматриваемого операнда)).
В большинстве процессоров нулевой флаг в основном используется в инструкциях условного перехода , которые изменяют поток управления по результатам предыдущих инструкций, но часто есть и другие применения.
В некоторых наборах команд, таких как архитектура MIPS , выделенный регистр флагов не используется; инструкции перехода вместо этого проверяют регистр на наличие нуля. [1]
Ссылки
[ редактировать ]- ^ «Набор инструкций MIPS R5» (PDF) . Архивировано из оригинала (PDF) 15 декабря 2023 года . Проверено 11 июля 2024 г.