首页 > 应用 > 单片机应用
[导读]
应邀写个汇编语言的除法子程序。编写除法子程序,有两种算法,移位相减的方法和循环相减的方法。移位相减的方法是仿照人们做除法的竖式编写,执行速度较快,但是计算的原理,一般人不好理解,难以让大家

应邀写个汇编语言的除法子程序。

本文引用地址: http://www.21ic.com/app/mcu/201806/764393.htm

编写除法子程序,有两种算法,移位相减的方法和循环相减的方法。

移位相减的方法是仿照人们做除法的竖式编写,执行速度较快,但是计算的原理,一般人不好理解,难以让大家推广到更多的字节。故此下面采用循环相减的思路来编写程序。

设计思路:所谓除法,就是要求出在被除数中,含有多少个除数。那么就用被除数连续的减去除数,直到不够减为止,够减的次数,就是商,不够减的数值,就是余数。

下列程序,对数值范围的要求很宽松,被除数、除数和商,都可以是16位数,这比网上常见的16位除8位的除法程序,适用面要广得多。

注意,除数为0的问题,应该在主程序中进行检测。

;-------------------------------------

;16位/16位的子程序

;被除数:R2R3、除数:R4R5;商:DPTR、余数:R2R3。

;占用:A、B。

;-------------------------------------

R23DIVR45:

MOV DPTR, #0

D_LOOP:

CLR C

MOV A, R3

SUBB A, R5

MOV B, A

MOV A, R2

SUBB A, R4 ;R2R3-R4R5

JC DIV_E ;有借位转移

INC DPTR

MOV R3, B

MOV R2, A

SJMP D_LOOP

DIV_E:

RET;不够减就结束

;-------------------------------------

;完


对于R2R3中的余数,还应该有个“四舍五入”的程序。

呵呵,我来抛砖,不知那位读者可以还玉?


换一批

延伸阅读

[真心话] 偷偷工作自动化,每周工作几小时却拿全薪,这样道德么?

偷偷工作自动化,每周工作几小时却拿全薪,这样道德么?

程序员们在 StackExchange 上有激烈的讨论,如果偷偷把自己的工作自动化,是不是不道德?......

关键字:程序员 工作 自动化

[破谣言] 同性恋是一种“不自然”的现象吗?

同性恋是一种“不自然”的现象吗?

在反对同性恋的意见里,这种观点十分常见。它的主张者认为,同性恋就意味着基因不能传给后代,就意味着灭绝,所以它不自然、应该反对。......

关键字:同性恋 现象

[真心话] 从程序员变成优秀管理者,小米雷军的成长史

从程序员变成优秀管理者,小米雷军的成长史

“什么是成功?成功不是别人觉得你成功就是成功,成功是一种内心深处的自我感受。我只是在追求内心的一些东西,在路上。”学霸很多,能够创办出一流企业的学霸很少;手机公司很多,以软件起家的手机公司很少......

关键字:小米 雷军 程序员

[新鲜事] 从此告别单身!25%的80/90后表示和机器人恋爱正常 男性更积极

从此告别单身!25%的80/90后表示和机器人恋爱正常 男性更积极

据英国《每日电讯报》报道,一份最新研究报告显示,随着机器人日益成为我们日常生活的一部分,人类可能会很快爱上机器人。......

关键字:人类 机器人

[猎聘集] 面对2018年春节后的跳槽高峰期,程序员该如何更新你的简历

面对2018年春节后的跳槽高峰期,程序员该如何更新你的简历

马上就到一年一度的2018年春节了,金三银四,而春节过后往往是跳槽的高峰期.作为一名程序员,应该如何准备自己的简历呢?我们程序员一般在什么时机需要更新简历呢?......

关键字:程序员 跳槽
条评论

我 要 评 论

网友评论

技术子站

更多

人才招聘

更多

项目外包

更多

推荐博客