3203|6

88

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

这个程序的思路我不懂 [复制链接]

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

;入口条件:被除数在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          D1

       SETB     OV                ;溢出

       RET

D1:MOV      B,#10H          ;计算双字节商

D2: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          D3

       MOV      R2,A             ;够减,存放新的余数

       MOV      A,R1

       MOV      R3,A

       INC       R5                ;商的低位置一

D3:DJNZ     B,D2             ;计算完十六位商(R4R5)

       MOV      A,R4             ;将商移到R2R3中

       MOV      R2,A

       MOV      A,R5

       MOV      R3,A

       CLR       OV                ;设立成功标志

       RET
这个程序的思路我不太明白,希望各位高手多多指教

最新回复

学习。。。。。。。。。。。。  详情 回复 发表于 2009-12-27 02:01
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
除法的思路都是"移位-比较-相减"....这个看起来并没什么不同...
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
顶一下
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
比较,如果够相减,就从被除数中减去除数,并且商为+1,如果不够减就不减,商+0,然后移位....除数右移一位,商左移一位.(如果不是除数移位,就是余数向相反方向移位,反正它们相对移位就行....)
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
用减法来做除法

LZ再想想
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

6
 
就是看被除数中有几个除数,不够的化就是余数。
例如8/3   x为商  y为余数
x=0  y=0
8-3 = 5 》0   x+1
y=5
5-3 =2  》 0  x+1
y=2
2-3 = -1 《 0

所以商为2 余数为2
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 
学习。。。。。。。。。。。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表