logo
КС-ZAO / Лекции ЦЭВМруский вариант11

Программные флаги статуса

Размещение флагов в регистре статуса следующее:

Для команд ADDWF и SUBWF. Этот бит устанавливается, если в результате операции из самого старшего разряда происходит перенос. Вычитание осуществляется путем прибавления дополнительного кода второго операнда. При выполнении команд сдвига этот бит всегда загружается из младшего или старшего бита сдвигаемого источника.

;----------------------Пример

;SUBWF Example #1

;

clrf 0x20 ;f(20h)=0

movlf 1 ;wreg=1

subwf 0x20 ;f(20h)=f(20h)-wreg=0-1=FFh

;Carry=0: Результат отрицательный.

;SUBWF Example #2

;

movlw 0xFF

movwf 0x20 ;f(20h)=FFh

clrw ;wreg=0

subwf 0x20 ;f(20h)=f(20h)-wreg=FFh-0=FFh

;Carry=1: Результат положительный.

Для команд ADDWF и SUBWF. Этот бит устанавливается, если в результате операции из четвертого разряда происходит перенос. Механизм установки десятичного бита переноса "DC" тот же самый, отличается тем, что отслеживается перенос из четвертого бита.

Устанавливается, если результатом арифметической или логической операции является ноль.

Устанавливается в "1" при включении питания или команде CLRWDT. Сбрасывается в "0" командой SLEEP.

Устанавливается в "1" при включению питания и командами CLRWDT, SLEEP. Сбрасывается в "0" по завершению выдержки времени таймера WDT.

RP1,RP0:

00= Страница 0 (00h-7Fh)

01= Страница 1 (80h-FFh)

10= Страница 2 (100h-17Fh)

11= Страница 3 (180h-1FFh)

На каждой странице расположено 128 байт. В кристалле PIC16C84 используется только RP0. В этом кристалле RP1 может использоваться просто как бит общего назначения чтения/записи. Однако надо помнить, что в последующих разработках он будет использоваться.

IRP0:

0= Страницы 0,1 (00h-FFh)

1= Страница 2,3 (100h-1FFh)

Этот бит в кристалле PIC16C84 использовать не имеет смысла. Поэтому его можно использовать как бит общего назначения чтения/записи. Однако, надо помнить, что в последующих разработках он будет использоваться.