4470|4

82

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

除法程序 [复制链接]

我知道除法程序是通过减法和移位来实现的,当进行减法时单片机是以子为操作的.
假如除数前几位全是0的话,例如:
入口条件:被除数在R3,R4中(R3为高位),除数在R7中
出口信息:商在R5,R6中

R3为1100 0011 1010 0101; R4为1010 0101 1100 1010
R7为0000 0000 0000 0010
出现上面那种情况的话,再以子作为单位作减法的话就不对了,按常理说应从第二位开始作减法,可我不知如何编程,请朋友们帮助我

最新回复

;============================================================================ ;Name: CHU5 ;Func: 双字节除单字节商为双字节除法子程序 ;Input:  被除数放在R0,R1中,除数放在R3中,R2为被除数扩充位 ;OutPut: 商数放在R4,R5中,R4放低位,余数放在R2中 ;============================================================================ DIV_F:         MOV     R2,#00H         MOV     R4,#00H         MOV     R5,#00H         MOV     R7,#10H CHU5:         MOV     A,R0         ADD     A,R0         MOV     R0,A         MOV     A,R1         ADDC    A,R1         MOV     R1,A         MOV     A,R2         ADDC    A,R2         MOV     R2,A         MOV     A,R4         ADD     A,R4         MOV     R4,A         MOV     A,R5         ADDC    A,R5         MOV     R5,A         MOV     A,R2         MOV     TEMP1,R3         CJNE    A,TEMP1,LOOP0 LOOP0:         JC      LOOP1         MOV     A,R2         SUBB    A,R3         MOV     R2,A         MOV     A,R4         ADD     A,#01H         MOV     R4,A         MOV     A,R5         ADDC    A,#00H         MOV     R5,A LOOP1:         DJNZ    R7,CHU5         RET  详情 回复 发表于 2004-8-26 10:52
 
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
需要多少位的除法,如果有现成的子程序可以贴出共享。
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
被除数在R2,R3中(R2)为高位.除数在R4中,那么在除法的子程序中R2必须要小于R4才行,假如R2大于R4怎么办呢
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
R2不一定要小于R4吧,
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 

一个例子

;============================================================================
;Name: CHU5
;Func: 双字节除单字节商为双字节除法子程序
;Input: 被除数放在R0,R1中,除数放在R3中,R2为被除数扩充位
;OutPut: 商数放在R4,R5中,R4放低位,余数放在R2中
;============================================================================
DIV_F:
MOV R2,#00H
MOV R4,#00H
MOV R5,#00H
MOV R7,#10H

CHU5:
MOV A,R0
ADD A,R0
MOV R0,A
MOV A,R1
ADDC A,R1
MOV R1,A
MOV A,R2
ADDC A,R2
MOV R2,A
MOV A,R4
ADD A,R4
MOV R4,A
MOV A,R5
ADDC A,R5
MOV R5,A
MOV A,R2
MOV TEMP1,R3
CJNE A,TEMP1,LOOP0
LOOP0:
JC LOOP1
MOV A,R2
SUBB A,R3
MOV R2,A
MOV A,R4
ADD A,#01H
MOV R4,A
MOV A,R5
ADDC A,#00H
MOV R5,A
LOOP1:
DJNZ R7,CHU5
RET
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表