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

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

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

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


换一批

延伸阅读

[单片机应用] 两个8031系统进行双机通信的电路连接图及通讯单片汇编语言

两个8031系统进行双机通信的电路连接图及通讯单片汇编语言

两个8031系统进行双机通信,工作于方式1,将甲机芯片内RAM30H~4FH单元存放的数据送到乙机相应单元。要求画出电路连接图,选择波特率,编写完整的通信程序。答案:图片1甲机:main:movscon,#01000000bmovtmod,......

关键字:8031系统 双机通信 汇编语言

[单片机应用] 单片机汇编语言编程:汽车转向灯控制器

单片机汇编语言编程:汽车转向灯控制器

;刚才在百度知道上看到一个题目:http://zhidao.baidu.com/question/439326240.html;转眼之间,知道宝贝又找不到了,百度真是变化莫测。;呵呵,做而论道已经提前一步保存下来了题......

关键字:汇编语言 单片机 控制器 转向灯

[单片机应用] 用51单片机汇编语言,编写“键控加减一”的程序

用51单片机汇编语言,编写“键控加减一”的程序

程序要求:开始时LED显示0、K1具有增数功能、K2具有减数功能。若LED显示为0,按下K1,则显示为1、再按下K1,显示为2.....,若显示为9,再按下则显示为0;若LED显示为0,按下K2,则显示为9、再按下K......

关键字:汇编语言 单片机

[单片机应用] 51 汇编语言编程:变速计数

51 汇编语言编程:变速计数

;用51单片机控制 2位数码管动态显示 00 ~ 99。;从 00 开始显示,显示数字每隔一段时间加 1,一直到 99,然后回到 00。;从 00 到 10 每隔 100ms 加 1;;从 10 到 20 每隔 20......

关键字:汇编语言

[单片机应用] 51 单片机汇编语言--矩阵键盘的驱动

51 单片机汇编语言--矩阵键盘的驱动

用这个矩阵键盘做单片机输入,插 P1 口的 P1.0~P1.6。想问的是,当:按下 1 键 P0 口的 P0.0 输出高电平;按下 2 键 P0.1 输出高电平;……一直到 8 键就可以了。还有一个要求,当按下一个键......

关键字:汇编语言 矩阵 单片机 键盘

[单片机应用] 51 单片机汇编语言:0~100 计数器

51 单片机汇编语言:0~100 计数器

;单片机计数器 0~100。;外部中断控制加减。;高于100还是100,低于0还是0。;按照设计思路,程序全面改写如下: ORG 0000H AJMP MAIN ORG 0003H AJMP TL OR......

关键字:汇编语言 单片机 计数器

[单片机应用] 51 汇编语言编程:外部中断实验

51 汇编语言编程:外部中断实验

;主程序显示八位流水灯;;外部中断0:左右四位闪烁三次;;外部中断1:各位间隔闪烁三次。;仿真电路如下:;图片链接:http://xiangce.baidu.com/picture/detail/f07000d4dd......

关键字:汇编语言

我 要 评 论

网友评论

芯闻号

技术子站

更多

项目外包

更多

推荐博客