Во всех архитектур, которые поддерживают флаги, флаг N
или Negative
просто соответствует наиболее значащий бит последнего номера вычисленной.
Кроме того, во многих архитектурах есть флаг V
или Overflow
, который говорит вам, что самый старший бит был изменен последней операцией.
Если реестр перешел от положительной к отрицательной, будут установлены как O
, так и N
.
Если значение в регистре отрицательное до и после N
будет установлено, но не O
. и т. д.
Флаг переполнения полезен только при использовании подписанной арифметики. При использовании беззнаковой арифметики вы используете флаг C
(Carry
), в котором сообщается, когда результат превысит наибольший результат, который может удерживать регистр (0xFFFF FFFF в 32-разрядной версии).
Идентификатор Z
zero
, который сообщает вам, является ли результат нулевым или нет.
Флаг 'N' - это только бит знака, который является самым значительным. Так что да, это было бы установлено. Руководство для вашей архитектуры (которое вы забыли указать ...), конечно же, говорит вам об этом. Кроме того, вы можете просто запустить его в отладчике. – Jester
Итак, когда «N» и «V» оба установлены, то это означает, что фактическое число положительно? – Lerbi
Да, так оно и есть. Переполнение завернулось. – Jester