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

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

本文引用地址: 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中的余数,还应该有个“四舍五入”的程序。

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


换一批

延伸阅读

[新鲜事] 三星跟苹果的专利官司败了要赔5.39亿美金,不过三星将继续上诉

三星跟苹果的专利官司败了要赔5.39亿美金,不过三星将继续上诉

6月12日消息,据外媒报道,上周四,三星要求法院驳回其与苹果的手机专利案的判决,或者重新审理这起案件。三星在提交给美国加州圣何塞地方法院的一份长达34页的庭审后动议中表示,陪审团做出的5.39亿美元的赔偿判决......

关键字:三星 苹果

[猎聘集] X语言,从入门到放弃..自学成为程序员真正需要的是什么?

X语言,从入门到放弃..自学成为程序员真正需要的是什么?

我应该如何成为一个程序员呢?是不是很困难呢?自学可以成功吗?有没有什么特别的途径呢?成为程序员需要特别高的智商吗?现在,我作为一个本科阶段是计算机专业的圈内人,就试着回答这个问题,希望可以给提问者,也可以给其他有志于今后从事计算机行业,特别......

关键字:自学 程序员 计算机行业

[猎聘集] 硬件路漫漫,想成为高级嵌入式硬件工程师,你还欠缺什么?

硬件路漫漫,想成为高级嵌入式硬件工程师,你还欠缺什么?

有很多朋友经常会问,成为高级嵌入式系统硬件工程师,需要做到哪些呢?那么,我们就先从嵌入式硬件工程师是个什么概念入手。......

关键字:嵌入式 硬件工程师
条评论

我 要 评 论

网友评论

技术子站

更多

项目外包

更多

推荐博客