📄 mcobcdneg.asm
字号:
;********************MCOBCDNEG********************
;本程序实现多字节压缩BCD码求补。
;入口参数:待处理的数据地址在SADR中,字节数在CNT中。
;出口参数:结果地址在SADR中,字节数在CNT中.
;占用资源:W,FSR,STATUS,020H,023H,028H,一重堆栈。
;说 明: 0求补还是0.
IFNDEF MCOBCDNEG1
#DEFINE MCOBCDNEG1
MCOBCDNEG MOVF CNT,W
MOVWF TEMP1
MOVF SADR,W
MOVWF FSR
MOVF INDF,W
SUBLW 9AH ;用10减最低位
MOVWF INDF
INCF FSR,F
DECF TEMP1,F
LOOP15 MOVF INDF,W
SUBLW 99H ;用9减其它位
MOVWF INDF
INCF FSR,F
DECFSZ TEMP1,F
GOTO LOOP15
MOVF CNT,W
MOVWF TEMP1 ;重新获得字节数
MOVF SADR,W
MOVWF FSR ;重新获得首地址
LOOP16 MOVLW 6 ;BCD码低四位调整
ADDWF INDF,W
BTFSS STATUS,DC
RETURN
MOVWF INDF
MOVLW 60H ;BCD码高四位调整
ADDWF INDF,W
BTFSS STATUS,C
RETURN
MOVWF INDF
INCF FSR,F
INCF INDF,F
DECFSZ TEMP1,F
GOTO LOOP16
DECF INDF,F
RETURN
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -