下载此文档

高效汇编多字节开方程序.docx


文档分类:医学/心理学 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
高效汇编多字节开方程序.docx一个实用开方程序
一、前R
在使用汇编语言进行单片机程序开发中,比较麻烦的是需要自己编写数学计算函数,特别是开方计算。 本文介绍一个快速的四字节开方程式。它的理论基于我们在初中学的手算开方方法。
二、手算开方
A、手算开方步骤:
一个实用开方程序
一、前R
在使用汇编语言进行单片机程序开发中,比较麻烦的是需要自己编写数学计算函数,特别是开方计算。 本文介绍一个快速的四字节开方程式。它的理论基于我们在初中学的手算开方方法。
二、手算开方
A、手算开方步骤:
2
6'00'.00
4
2'00
1'76
24'00
19'36
4'64
对被开方数从个位起向左每隔两位为一节,若带有小数从小数点起 向右每隔两位一节,用号将各节分开;
求不大于左边第一节数(6)的平方根(2),为平方根最高位上的数;
从左边第一节数里减去求得的最高位上的数的平方(4),在它们的差 的右边写上第二节数作为第一个余数(2,00);
把商的最高位上的数(2)乘20(即2X20=40)去试除第一个余数(2'00),
所得的整数作试商(200/40=5, 5太恰了,少1取4);
用最高位的数(2)乘以20加上试商(4)的和(2X20+4=44), (44)再乘 以试商(44X4=176)o如果所得的积小于或等于余数,就把试商逐次减 小。这个试商就是平方根的第二位数;如果所得的积大于余数,再试, 直到积小于或等于余数为止;
用同样的方法,从第3步开始,继续求平方根的其它各位上的数。
1.
2.
3.
B、理论推导
设十位数为A,个位数为B,则此数为(10A+B),此数的平方为:
(10A+B) 2= (10A) 2①+ (20A+B) XB②
上式正是我们手算开方的依据。取A为0,则是第2步的依据;取A为一个个位数,则第4、5步成 立;至于第6步,请将A视为一个多位数。
进一步,②中的系数20实际上是数制X2。即10进制乘20, 16进制乘0x20(32), 2进制乘Ob 100(4).,
下面是一个16进制的例子:
0x2 7 3 . 1
0x6'00'00'.00
4
验算:(0x2731)2 :
(0x2732)2 :
结论:此结果正确
=0x5FFF761
=0x60045C4
Ox 2'00
1'Fl
OxOF'OO
0xOE'A9
Ox 57'OO
Ox 4E'6O
Ox 8'AO
三、程序实现
本算法采用2进制,试商变得简单,只能是。或1。被开方数为32位,每次处理2位,16次循环即 可完成。具体如下:
A、逻辑框图
程序实现
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
;数据格式:低位字节在前,各参数为16位
;语言■环境:三菱MC306NJ6位处理器
;开方程序(4字节)
;开方数放在JS_DYA,JS_DYB中
;结果放在JS_DYC
;计数器 JS_DYD
;处理中间变量为JS_DYE,JS_DYF
;工作寄存器为RO,R1,R2
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
SQRT4:

高效汇编多字节开方程序 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小雄
  • 文件大小91 KB
  • 时间2022-03-12
最近更新