?? mcobcdml2.asm
字號:
;********************MCOBCDML2********************
;本程序?qū)崿F(xiàn)多字節(jié)壓縮BCD碼乘2。
;入口參數(shù): 原數(shù)據(jù)首地址在SADR中,字節(jié)數(shù)在CNT中。
;出口參數(shù): 結(jié)果首地址在SADR中,字節(jié)數(shù)在CNT中,進(jìn)位在STATUS:C中。
;占用資源: W,STATUS,FSR,020H,023H,028H,一重堆棧。
;說 明: 原操作數(shù)將被沖掉.
IFNDEF MCOBCDML21
#DEFINE MCOBCDML21
MCOBCDML2 CLRF TEMP1 ;進(jìn)位位清零
MOVF SADR,W
MOVWF FSR
NEXT17 RRF TEMP1,F
RLF INDF,F ;乘2
RLF TEMP1,F ;保存進(jìn)位
BTFSC INDF,4 ;半進(jìn)位 = 0 ?
GOTO ADJUST2 ;調(diào)整LSD
MOVLW 6
ADDWF INDF,F ;通過加6檢測是否 LSD > 9
BTFSS INDF,4 ;檢查半進(jìn)位
SUBWF INDF,F ; LSD < 9 ,恢復(fù)原值
GOTO OVER8
ADJUST2 MOVLW 6
ADDWF INDF,F
OVER8 MOVLW 60 ;MSD加6
ADDWF INDF,F
BTFSC STATUS,C
GOTO OVER9
BTFSS TEMP1,0
SUBWF INDF,F
GOTO DONE5
OVER9 BSF TEMP1,0
DONE5 INCF FSR,F
DECFSZ CNT,F
GOTO NEXT17
MOVF SADR,W
SUBWF FSR,W
MOVWF CNT ;字節(jié)數(shù)
RRF TEMP1,F ;獲得進(jìn)位位
RETURN
ENDIF
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -