📄 mdcbcdtb.asm
字号:
;********************MDCBCDTB********************
;本程序实现多字节十进制小数转化为双字节二进制小数。
;入口参数:原十进制数地址在SADR中,字节数在CNT中,结果存放地址在DADR中,结果字节
; 数在W中。
;出口参数:结果在指定单元中,地址在SADR中,字节数在CNT中。
;占用资源:W,STATUS,020H,021H,023H,027H~02BH,两重堆栈。
;说 明: 1.加载本文件的同时也加载了另外2个文件"MCOBCDML2.ASM","MSHL.ASM"
; 故用户在使用这个子程序时可直接调用,不必重新加载.
; 2.程序执行后,原数据将被冲掉。
IFNDEF MDCBCDTB1
#DEFINE MDCBCDTB1
MDCBCDTB MOVWF TEMP4 ;TEMP4永久存放结果字节数
MOVWF RLTH
BCF STATUS,C
RLF RLTH,F
RLF RLTH,F
RLF RLTH,F ;RLTH为循环次数
MOVF CNT,W
MOVWF TEMP2 ;TEMP2永久存放转化之前的字节数
MOVF SADR,W
MOVWF TEMP3 ;TEMP3用来保护SADR
NEXT18 MOVF TEMP3,W
MOVWF SADR
MOVF TEMP2,W
MOVWF CNT ;转化之前的字节数
CALL MCOBCDML2 ;转化完的1位二进制数在STATUS:C中
MOVF DADR,W
MOVWF SADR
MOVF TEMP4,W
MOVWF CNT
CALL MSHL ;转化结果存入相应位
DECFSZ RLTH,F
GOTO NEXT18
RETURN
INCLUDE "MCOBCDML2.ASM"
INCLUDE "MSHL.ASM"
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -