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

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

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

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


换一批

延伸阅读

[单片机应用] 两机串行通讯单片机汇编语言编程举例

两机串行通讯单片机汇编语言编程举例

A、B两机之间串行通讯(方式1),用‘检验和’校验波特率为2400,发送缓冲区和接收缓冲区都为片内30H开始的16个字节单元。已知:fosc=11.0592MHz。设计A发送,B接收的双方协议如下:1、首先A发送‘AA’信号,B接收到......

关键字:串行通讯 单片机 汇编语言

[单片机应用] 包含中断的LED显示汇编语言程序

包含中断的LED显示汇编语言程序

例:电路如图。要求编程实现:主程序将P1口的8个LED从上到下循环显示(间隔时间约1S),中断时(INT0)使8个LED同时闪烁5次(间隔时间约1S,设单片机晶振为6M)。图片1(1)主程序ORG 0000HLJMP STARTSTART:......

关键字:中断 LED显示 汇编语言

[单片机应用] 浅谈单片机中C语言与汇编语言的转换

浅谈单片机中C语言与汇编语言的转换

做了一单片机设计,要用C语言与汇编语言同时实现,现将这次设计的感受和收获,还有遇到的问题写下,欢迎感兴趣的朋友交流想法,提出建议。单片机设计:基于51单片机的99码表设计软件环境:Proteus8.0 + Keil4要求:1......

关键字:单片机中 C语言 汇编语言

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

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

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

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

[测试测量] 氧化铝行业中电磁流量计的实际应用案例分析

氧化铝行业中电磁流量计的实际应用案例分析

电磁流量计的适用范围很广,随着近来年研发技术得到突破性发展,低频矩形波、双频矩形波励磁技术和微处理器技术的应用于产品研发,带来了电磁流量计的测量单元和数据处理单元的性能,无论是电磁流量计抗干扰能力还是......

关键字:氧化铝行业 电磁流量计

我 要 评 论

网友评论

芯闻号

技术子站

更多

项目外包

更多

推荐博客