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