Средства разработки для PICMICRO - Страница 37

Средства разработки для PICMICRO - Средства разработки для PICMICRO

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

incf Reg, f ; Инкремент младшего байта

btfsc STATUS, z ; В результате получен 0? (Младший байт=256) incf Reg + 1, f ; Да, производим инкремент старшего байта

Так как флаг нуля устанавливается, если младший байт равен 0 (или 256), то мы можем определить, когда надо выполнить инкремент старшего байта в 16-битном числе.

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

movlw 1 ; Загрузить 1 в регистр W

subwf Reg, f ; Вычесть 1 из младшего байта

Go to Top