scobcdadd.asm
来自「pic单片机常用的汇编程序,很有用的,分成各个小模块」· 汇编 代码 · 共 33 行
ASM
33 行
;********************SCOBCDADD********************
;本程序实现单字节压缩BCD码加法。
;入口参数:被加数在SOU中,加数在RLT中。
;出口参数:结果在SOU中,进位位在STATUS:C中。
;占用资源:W,STATUS,024H,026H,028H,一重堆栈。
IFNDEF SCOBCDADD1
#DEFINE SCOBCDADD1
SCOBCDADD CLRF TEMP1 ;结果高位清零
MOVF RLT,W
ADDWF SOU,F ;二进制加法
RLF TEMP1,F
BTFSC STATUS,DC ;DC = 0 ?
GOTO ADJUST ;调整LSD
MOVLW 6
ADDWF SOU,F ;通过加6检测是否 LSD > 9
BTFSC STATUS,C
INCF TEMP1,F
BTFSS STATUS,DC ;检查半进位
SUBWF SOU,F ; LSD < 9 ,恢复原值
GOTO OVER1
ADJUST MOVLW 6
ADDWF SOU,F
OVER1 MOVLW 60 ;MSD加6
ADDWF SOU,F
BTFSC STATUS,C
RETLW 0
BTFSS TEMP1,0
SUBWF SOU,F
RRF TEMP1,F
RETLW 0
ENDIF
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?