导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请帮忙指点除法算法问题?

* 64197: 请帮忙指点除法算法问题?

   zxlsky 
zxlsky发表的帖子 

 请帮忙指点除法算法问题?
各位好!今日看到除法子程序,却不知其算法,演示完了,仍不知其到底是怎么实现的,望前辈指点迷津!万分感谢!


子程序如下:

双字节二进制无符号数除法 

入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。 
出口信息:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。 
影响资源:PSW、A、B、R1~R7 堆栈需求: 2字节 
DIVD: CLR C ;比较被除数和除数 
MOV A,R3 
SUBB A,R7 
MOV A,R2 
SUBB A,R6 
JC DVD1 
SETB OV ;溢出 
RET 
DVD1: MOV B,#10H ;计算双字节商 
DVD2: CLR C ;部分商和余数同时左移一位 
MOV A,R5 
RLC A 
MOV R5,A 
MOV A,R4 
RLC A 
MOV R4,A 
MOV A,R3 
RLC A 
MOV R3,A 
XCH A,R2 
RLC A 
XCH A,R2 
MOV F0,C ;保存溢出位 
CLR C 
SUBB A,R7 ;计算(R2R3-R6R7) 
MOV R1,A 
MOV A,R2 
SUBB A,R6 
ANL C,/F0 ;结果判断 
JC DVD3 
MOV R2,A ;够减,存放新的余数 
MOV A,R1 
MOV R3,A 
INC R5 ;商的低位置一 
DVD3: DJNZ B,DVD2 ;计算完十六位商(R4R5) 
MOV A,R4 ;将商移到R2R3中 
MOV R2,A 
MOV A,R5 
MOV R3,A 
CLR OV ;设立成功标志 
RET 


发表时间:2004年10月11日20:19:02

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  64217.[详细]将一个二进制数进行左移一位就是它原来的2倍,即X2的值,同理将这个数右移一位就是除2了.不妨验证一..
摘要:将一个二进制数进行左移一位就是它原来的2倍,即X2的值,同理将这个数右移一位就是除2了.不妨验证一下.不过要注意带进位的问题......(116字)
- [hawker2001][1728次] 2004年10月12日

  64520.[详细]从高位减起,比从底位减起有快,可以验算一下
摘要:从高位减起,比从底位减起有快,可以验算一下......(42字)
- [guest][960次] 2004年10月15日

[上一篇帖子]:新手及爱好者和零售商可以考虑。http://liliweiye.go.nease.net/
[下一篇帖子]:希望对你有帮助![upload=rar]viewfile.asp?ID=1062[/upload]