导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[langren0468]MS51浮点运算!



No.25946
作者:langren0468
邮件:langren04681980@163.com
ID:31
登陆:26次
QQ:16435101
--  MSN:langren0468@hotmail.com
文章数:1085篇
最后登陆IP:210.41.106.221
最后登陆:2005/3/23 13:40:31
注册:2003/3/11 8:50:00
财富:2882
发帖时间:2003/4/18 9:45:16
发贴者IP:218.88.130.225
标题:langren0468:MS51浮点运算!
摘要:No.25946MS51浮点运算! MCS-51 浮点运算子程序库及其使用说明

本浮点子程序库有三个不同层次的版本,以便适应不同的应用场合:
1.小型库(FQ51A.ASM):只包含浮点加、减、乘、除子程序。
2.中型库(FQ51B.ASM):在小型库的基础上再增加绝对值、倒数、比较、平方、开平方、
数制转换等子程序。
3.大型库(FQ51.ASM):包含本说明书中的全部子程序。
为便于读者使用本程序库,先将有关约定说明如下:
1.双字节定点操作数:用[R0]或[R1]来表示存放在由R0或R1指示的连续单元中的数
据,地址小的单元存放高字节。如果[R0]=1234H,若(R0)=30H,则(30H)=12H,(31H)=34H。
2.二进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为
阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用双字节
纯小数(原码)来表示。当尾数的最高位为1时,便称为规格化浮点数,简称操作数。在
程序说明中,也用[R0]或[R1]来表示R0或R1指示的浮点操作数,例如:当[R0]=-6.000时,
则二进制浮点数表示为83C000H。若(R0)=30H,则(30H)=83H,(31H)=0C0H,(32H)=00H。
3.十进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为
阶码(二进制补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用
双字节BCD码纯小数(原码)来表示。当十进制数的绝对值大于1时,阶码就等于整数
部分的位数,如 876.5 的阶码是03H,-876.5 的阶码是 83H;当十进制数的绝对值小于1
时,阶码就等于 80H 减去小数点后面零的个数,例如 0.00382 的阶码是 7EH,-0.00382
的阶码是 0FEH。在程序说明中,用[R0]或[R1]来表示R0或R1指示的十进制浮点操作数。例
如有一个十进制浮点操作数存放在30H、31H、32H中,数值是 -0.07315,即-0.7315乘以10
的-1次方,则(30H)=0FFH,31H=73H,(32H)=15H。若用[R0]来指向它,则应使(R0)=30H。
4.运算精度:单次定点运算精度为结果最低位的当量值;单次二进制浮点算术运算
的精度优于十万分之三;单次二进制浮点超越函数运算的精度优于万分之一;BCD码浮
点数本身的精度比较低(万分之一到千分之一),不宜作为运算的操作数, ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:0毫秒 最大:357232毫秒 查询6次