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

sbc R1, R3 ; Теперь вычесть старшие 8 бит

Используя команды сложения и вычитания с учетом переноса можно легко обрабатывать 24- и 32-разрядные числа со знаком.

Прежде, чем перейти к описанию следующих команд, я хочу пояснить функции флагов отрицательного результата N («negative»), переполнения V («overflow») и знака S («sign»), так как они имеют некоторые особенности и сложны для понимания при первоначальном знакомстве.

Флаг отрицательного результата N просто копирует значение бита 7 результата, который показывает, является результат положительным или отрицательным числом. При выполнении команды:

sub R4, R5.

если содержимое регистра R4 больше или равно содержимому R5, то результат будет положительным, и бит 7 равняется нулю. Если же содержимое R4 меньше, чем содержимое R5, то бит 7 будет установлен в 1, показывая, что результат отрицателен и представлен в дополнительном коде.

Назначение флага переполнения V в регистре SREG может показаться вам не очень понятным. Этот флаг указывает на переполнение во время сложения или вычитания чисел со знаком. Рассмотрим пример:

Go to Top