PIC單片機(jī)的多字節(jié)減法子程序
;入口參數(shù):減數(shù)首地址在DADR中,被減數(shù)首地址在SADR中,字節(jié)數(shù)在CNT中。
;出口參數(shù):結(jié)果首地址在SADR中,字節(jié)數(shù)在CNT中,借位標(biāo)志在STATUS:C中,'0'表示有借位。
;占用資源:W,FSR,STATUS,020H,021H,022H,023H,028H,029H,一重堆棧。
;說(shuō)明: 1.程序執(zhí)行后,被減數(shù)被沖掉。
IFNDEF MUSUB1
#DEFINE MUSUB1
MUSUB MOVF SADR,W
MOVWF SADRH ;保護(hù)結(jié)果首地址
CLRF TEMP2 ;
DECF TEMP2,F ;清除借位
NEXT4 MOVF DADR,W
MOVWF FSR
MOVF INDF,W ;取出減數(shù)
MOVWF TEMP1 ;暫存
MOVF SADR,W
MOVWF FSR
MOVF TEMP1,W
SUBWF INDF,F
RLF TEMP2,F ;暫存當(dāng)前借位,并使上一次借位前移
BSF STATUS,C ;清除借位
MOVLW 1
BTFSS TEMP2,1
SUBWF INDF,F
BTFSS STATUS,C ;減借位位的過程中是否產(chǎn)生了借位
BCF TEMP2,0
INCF DADR,F
INCF SADR,F
DECFSZ CNT,F
GOTO NEXT4
MOVF SADRH,W
SUBWF SADR,W
MOVWF CNT ;恢復(fù)字節(jié)數(shù)
MOVF SADRH,W
MOVWF SADR ;結(jié)果首地址
RRF TEMP2,W ;借位位放到C中
RETLW 0
ENDIF
評(píng)論