首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]双字节二进制无符号数除以单字节二进制数程序

[求助]双字节二进制无符号数除以单字节二进制数程序

想求得一

双字节二进制无符号数除以单字节二进制数

的汇编程序,用于mcs51。

的汇编程序,用于mcs51。

下面是我在mcs51子程序库中找到的,但调试后发现不正确……

入口条件:被除数在R4R5中,除数在R7中。
出口信息:OV=0 时,单字节商在R3中,OV=1 时溢出。
影响资源:PSWAR3R7 堆栈需求:2字节

D457: CLR C
MOV A,R4
SUBB A,R7
JC DV50
SETB OV ;
商溢出

RET
DV50: MOV R6,#8 ;
求平均值(R4R5R7-→R3
DV51: MOV A,R5
RLC A
MOV R5,A
MOV A,R4

RLC A
MOV R4,A
MOV F0,C
CLR C
SUBB A,R7
ANL C,/F0
JC DV52
MOV R4,A
DV52: CPL C
MOV A,R3
RLC A
MOV R3,A
DJNZ R6,DV51
MOV A,R4 ;
四舍五入

ADD A,R4
JC DV53
SUBB A,R7
JC DV54
DV53: INC R3
DV54: CLR OV
RET

对这个程序的原理不是很清楚,调试了一段时间,也没调对

对这个程序的原理不是很清楚,调试了一段时间,也没调对

还望写过这个程序的高手指点一下……

谢谢了…………

D457: CLR C
MOV A,R4
SUBB A,R7
JC DV50
SETB OV ;
商溢出

RET
DV50: MOV R6,#8 ;
求平均值(R4R5R7-→R3
DV51: MOV A,R5
RLC A
MOV R5,A
MOV A,R4

RLC A
MOV R4,A
MOV F0,C
CLR C
SUBB A,R7
ANL C,/F0
JC DV52
MOV R4,A
DV52: CPL C
MOV A,R3
RLC A
MOV R3,A
DJNZ R6,DV51
MOV A,R4 ;
四舍五入

ADD A,R4
JC DV53
SUBB A,R7
JC DV54
DV53: INC R3
DV54: CLR OV
RET

对这个程序的原理不是很清楚,调试了一段时间,也没调对

对这个程序的原理不是很清楚,调试了一段时间,也没调对

还望写过这个程序的高手指点一下……

谢谢了…………

[此贴子已经被作者于2008-8-12 20:43:54编辑过]

不好意思,对论坛不是很熟悉,重新编辑了好几次,都删不掉重复的地方……

返回列表