📄 dcobcddiv.asm
字号:
;********************DCOBCDDIV********************
;本程序实现单字节压缩BCD码除法。
;入口参数:被除数在SOUH:SOU中,除数在RLTH:RLT中。
;出口参数:商在SOUH:SOU中,余数在RLTH:RLT中。
;占用资源:W,STATUS,020H,021H,023H~02BH,三重堆栈。
;说 明: 1.加载本文件的同时也加载了另外三个文件"DCOBCDTB.ASM","DBTBCD.ASM"
; "DUDIV.ASM",故用户在使用这三个子程序时可直接调用,不必重新加载.
; 2.用户在调用该子程序之前必须确定除数不为零,否则得不到正确结果.
IFNDEF DCOBCDDIV1
#DEFINE DCOBCDDIV1
DCOBCDDIV CALL DCOBCDTB ;被除数转化为二进制数
MOVF SOU,W
MOVWF SADR
MOVF SOUH,W
MOVWF SADRH ;暂存转化后的被除数
MOVF RLT,W
MOVWF SOU
MOVF RLTH,W
MOVWF SOUH ;传递参数
CALL DCOBCDTB ;除数转化为二进制
MOVF SOU,W
MOVWF RLT
MOVF SOUH,W
MOVWF RLTH ;转化后的除数
MOVF SADR,W
MOVWF SOU
MOVF SADRH,W
MOVWF SOUH
CALL DUDIV ;二进制除法
MOVF SOU,W
MOVWF SADR
MOVF SOUH,W
MOVWF SADRH ;暂存商
MOVF RLT,W
MOVWF SOU
MOVF RLTH,W
MOVWF SOUH ;传递参数
CALL DBTBCD
MOVF SOUH,W
MOVWF RLTH
MOVF SOU,W
MOVWF TEMP4
MOVF SADR,W
MOVWF SOU
MOVF SADRH,W
MOVWF SOUH
CALL DBTBCD
MOVF TEMP4,W
MOVWF RLT
RETLW 0
INCLUDE "DCOBCDTB.ASM"
INCLUDE "DUDIV.ASM"
INCLUDE "DBTBCD.ASM"
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -