;********************SUBCDADD********************
;本程序实现单字节非压缩BCD码加法。
;入口参数:被加数在SOU中,加数在RLT中。
;出口参数:结果在SOU中,进位位在STATUS:C中。
;占用资源:W,STATUS,024H,026H,一重堆栈。
IFNDEF SUBCDADD1
#DEFINE SUBCDADD1
SUBCDADD MOVF RLT,W
ADDWF SOU,W
BTFSS STATUS,DC ;检查半进位
GOTO NODC1
ADDLW 6 ;加6处理
OVER2 ANDLW 0FH
MOVWF SOU
BSF STATUS,C
RETURN
NODC1 ADDLW 6
BTFSC STATUS,DC ;DC为1,表明原结果大于9
GOTO OVER2
ADDLW 0FAH ;恢复原值
MOVWF SOU
BCF STATUS,C ;清除进位
RETURN
ENDIF