?? mubcdsub.asm
字號(hào):
;********************MUBCDSUB********************
;本程序?qū)崿F(xiàn)多字節(jié)非壓縮BCD碼減法。
;入口參數(shù): 被減數(shù)地址在SADR中,減數(shù)地址在DADR中,字節(jié)數(shù)在CNT中。
;出口參數(shù): 結(jié)果首地址在SADR中,字節(jié)數(shù)在CNT中,借位標(biāo)志在STATUS:C中,'0'表示有借位。
;占用資源: W,STATUS,FSR,020H,022H,023H,028H,029H,02AH,一重堆棧。
;說 明: 被減數(shù)將被沖掉.
IFNDEF MUBCDSUB1
#DEFINE MUBCDSUB1
MUBCDSUB BSF TEMP3,0 ;清除借位
MOVF SADR,W
MOVWF TEMP2 ;保存結(jié)果首地址
NEXT8 MOVF DADR,W
MOVWF FSR
MOVF INDF,W
MOVWF TEMP1 ;暫存減數(shù)
MOVF SADR,W
MOVWF FSR
MOVF TEMP1,W
SUBWF INDF,F
BTFSC STATUS,Z
GOTO ZERO ;結(jié)果是零
BTFSC STATUS,C ;檢查借位
GOTO NOC4
CLRW
BTFSS TEMP3,0
ADDLW 01 ;減掉借位
ADDLW 0F6H
SUBWF INDF,F ;減6處理
BCF TEMP3,0 ;置借位標(biāo)志
GOTO DONE4
NOC4 BTFSS TEMP3,0
DECF INDF,F
NOC5 BSF TEMP3,0
GOTO DONE4
ZERO BTFSC TEMP3,0
GOTO NOC5
MOVLW 09H ;減1變?yōu)?
MOVWF INDF
BCF TEMP3,0
DONE4 INCF DADR,F
INCF SADR,F
DECFSZ CNT,F
GOTO NEXT8
MOVF TEMP2,W
SUBWF SADR,W
MOVWF CNT ;字節(jié)數(shù)
SUBWF SADR,F ;首地址
RRF TEMP3,F ;借位
RETLW 0
ENDIF
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -