📄 32_16div.asm
字号:
;==============================================
;名称: 32BIT/16BIT除法运算
;功能:(B_M/B_L,C_H/C_L)/(A_H/A_L)=(B_H/B_M/B_L)
;输入:被除数B_M/B_L,C_H/C_L,除数A_H/A_L
;输出:results(B_H/B_M/B_L)余数:C_H/C_L
;影响RAM:D_H,D_L,E_H,E_L,
;释放RAM:
;注:采用移位相减实现除法运算
;局部变量
;B_H DS 1 ;B高位元
;B_M DS 1 ;B中位元
;B_L DS 1 ;B低位元
;C_H DS 1
;C_L DS 1
;A_H DS 1
;A_L DS 1
;D_H DS 1
;D_L DS 1
;E_H DS 1
;E_L DS 1
;temp ds 1
;==============================================
div:
MOVR D_H,B_M ;mov b to d
MOVR D_L,B_L
MOVR E_H,C_H ;mov c to e
MOVR E_L,C_L
CLr B_H ;
CLr B_M
CLr B_L
CLr C_H
CLr C_L
mov_c temp,32
D_Loop:
b0bCLr fc
rlcm E_L
rlcm E_H
rlcm D_L
rlcm D_H
rlcm C_L
rlcm C_H
CMP A_H,C_H
JA nogo ;
JNE yesgo
CMP A_L,C_L
JA nogo
yesgo:
SUB2BYTE C_H,C_L,A_H,A_L
b0bset fc
nogo:
rlcm B_L
rlcm B_M
rlcm B_H
DJNZ temp,D_Loop
ret
;==============================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -