PersonalCorpus 版 (精华区)



入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。
出口信息:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
影响资源:PSW、A、B、R1~R7 堆栈需求: 2字节

DIVD: CLR C ;比较被除数和除数
vOV A,R3
SUBB A,R7
vOV A,R2
SUBB A,R6
JC DVD1
SetB OV ;溢出
Ret
DVD1: vOV B,#10H ;计算双字节商
DVD2: CLR C ;部分商和余数同时左移一位
vOV A,R5
RLC A
vOV R5,A
vOV A,R4
RLC A
vOV R4,A
vOV A,R3
RLC A
vOV R3,A
XCH A,R2
RLC A
XCH A,R2
vOV F0,C ;保存溢出位
CLR C
SUBB A,R7 ;计算(R2R3-R6R7)
vOV R1,A
vOV A,R2
SUBB A,R6
ANL C,/F0 ;结果判断
JC DVD3
vOV R2,A ;够减,存放新的余数
vOV A,R1
vOV R3,A
INC R5 ;商的低位置一
DVD3: DJNZ B,DVD2 ;计算完十六位商(R4R5)
vOV A,R4 ;将商移到R2R3中
vOV R2,A
vOV A,R5
vOV R3,A
CLR OV ;设立成功标志
Ret






;
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.149毫秒