📄 mcobcdshr.asm
字号:
;********************MCOBCDSHR********************
;本程序实现多字节压缩BCD码非循环右移1位(即除以10)。
;入口参数: 原数据地址在SADR中,字节数在CNT中。
;出口参数: 结果首地址在SADR中,字节数在CNT中,移出位在SOU的低四位。
;占用资源: W,STATUS,FSR,020H,023H,024H,两重堆栈。
;说 明: 1.原数据将被冲掉.
; 2.加载本文件的同时也加载了另外一个文件"MSHR.ASM",
; 故用户在使用这个子程序时可直接调用,不必重新加载.
IFNDEF MCOBCDSHR1
#DEFINE MCOBCDSHR1
MCOBCDSHR DECF CNT,W
ADDWF SADR,W
MOVWF FSR ;末地址
MOVWF SADR
NEXT14 MOVLW 0FH
ANDWF INDF,W
SWAPF SOU,F
IORWF SOU,F
MOVLW 0F0H
ANDWF INDF,F
ANDWF SOU,W
SWAPF INDF,F
IORWF INDF,F
MOVLW 0FH
ANDWF SOU,F ;SOU低4位:INDF右移1位
DECF FSR,F
DECFSZ CNT,F
GOTO NEXT14
MOVF FSR,W
SUBWF SADR,W
MOVWF CNT ;结果字节数
SUBWF SADR,F
INCF SADR,F ;结果首地址
RETURN
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -