МИКРОКОНТРОЛЛЕР AVR - Страница 8

МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

Флаг отрицательного результата N устанавливается в 1, если старший (знаковый) разряд результата (бит 7) равен 1. Когда знаковый разряд установлен в I, это часто означает, что результат отрицателен. Следует, однако, отметить, что знаковый разряд может быть установлен в 1 и в результате логической операции. В этом случае знаковый разряд не должен использоваться в каких-либо других целях, кроме указания но то, что он был установлен в 1 после соответствующей операции.

Флаг переполнения V устанавливается при сложении или вычитании двух чисел со знаком, представленных в дополнительном коде (дополнение до двух), и случае, если значение полученного результата выходит за пределы допустимого диапазона, который для восьмибитового числа со знаком составляет от -128 до +127. При сложении двух положительных чисел флаг V устанавливается в 1, если сумма больше 127, в случае сложения двух отрицательных чисел — если результат меньше -128. Этот флаг показывает, что результат не является правильным 8-разрядным числом со знаком.

Вы можете сказать, что на самом деле результат является правильным, только его нельзя разместить 8-разрядном регистре, и будете правы. Для разрешения этой ситуации служит флаг знака S, который позволяет представить результат сложения или вычитания 8-разрядных чисел в дополнительном коде в виде 9-разрядного числа со знаком. Если после операций сложения или вычитания чисел со знаком флаг переполнения V установлен в 1, то результатом будет 9-разрядное число со знаком, причем старшим (знаковым) разрядом числа является флаг S, а восемь бит результата будут храниться в 8-разрядном регистре-приемнике.

Go to Top