mcs-51浮点运算子程序库及其使用说明

mcs-51浮点运算子程序库及其使用说明

ID:6667489

大小:39.00 KB

页数:11页

时间:2018-01-21

mcs-51浮点运算子程序库及其使用说明_第1页
mcs-51浮点运算子程序库及其使用说明_第2页
mcs-51浮点运算子程序库及其使用说明_第3页
mcs-51浮点运算子程序库及其使用说明_第4页
mcs-51浮点运算子程序库及其使用说明_第5页
资源描述:

《mcs-51浮点运算子程序库及其使用说明》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、MCS-51浮点运算子程序库及其使用说明1.双字节定点操作数:用[R0]或[R1]来表示存放在由R0或R1指示的连续单元中的数据,地址小的单元存放高字节。如果[R0]=1234H,若(R0)=30H,则(30H)=12H,(31H)=34H。2.二进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用双字节纯小数(原码)来表示。当尾数的最高位为1时,便称为规格化浮点数,简称操作数。在程序说明中,也用[R0]或[R1]来表示R0或R1指示的浮点操作数,例如:当[R0]=-6.000时,则二进制浮点数表示

2、为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指示的

3、十进制浮点操作数。例如有一个十进制浮点操作数存放在30H、31H、32H中,数值是-0.07315,即-0.7315乘以10的-1次方,则(30H)=0FFH,31H=73H,(32H)=15H。若用[R0]来指向它,则应使(R0)=30H。4.运算精度:单次定点运算精度为结果最低位的当量值;单次二进制浮点算术运算的精度优于十万分之三;单次二进制浮点超越函数运算的精度优于万分之一;BCD码浮点数本身的精度比较低(万分之一到千分之一),不宜作为运算的操作数,仅用于输入或输出时的数制转换。不管那种数据格式,随着连续运算的次数增加,精度都会下降。5.工作区:数据工作区固定在A、B、R2~R7

4、,数符或标志工作区固定在PSW和23H单元(位1CH~1FH)。在浮点系统中,R2、R3、R4和位1FH为第一工作区,R5、R6、R7和位1EH为第二工作区。用户只要不在工作区中存放无关的或非消耗性的信息,程序就具有较好的透明性。6.子程序调用范例:由于本程序库特别注意了各子程序接口的相容性,很容易采用积木方式(或流水线方式)完成一个公式的计算。以浮点运算为例:计算y=Ln√|Sin(ab/c+d)|已知:a=-123.4;b=0.7577;c=56.34;d=1.276;它们分别存放在30H、33H、36H、39H开始的连续三个单元中。用BCD码浮点数表示时,分别为a=831234H

5、;b=007577H;c=025634H;d=011276H。求解过程:通过调用BTOF子程序,将各变量转换成二进制浮点操作数,再进行各种运算,最后调用FTOB子程序,还原成十进制形式,供输出使用。程序如下:TEST:MOVR0,#39H;指向BCD码浮点操作数dLCALLBTOF;将其转换成二进制浮点操作数MOVR0,#36H;指向BCD码浮点操作数cLCALLBTOF;将其转换成二进制浮点操作数MOVR0,#33H;指向BCD码浮点操作数bLCALLBTOF;将其转换成二进制浮点操作数MOVR0,#30H;指向BCD码浮点操作数aLCALLBTOF;将其转换成二进制浮点操作数MOV

6、R1,#33H;指向二进制浮点操作数bLCALLFMUL;进行浮点乘法运算MOVR1,#36H;指向二进制浮点操作数cLCALLFDIV;进行浮点除法运算MOVR1,#39H;指向二进制浮点操作数dLCALLFADD;进行浮点加法运算LCALLFSIN;进行浮点正弦运算LCALLFABS;进行浮点绝对值运算LCALLFSQR;进行浮点开平方运算LCALLFLN;进行浮点对数运算LCALLFTOB;将结果转换成BCD码浮点数STOP:LJMPSTOPEND运行结果,[R0]=804915H,即y=-0.4915,比较精确的结果应该是-0.491437。(1)标号:FSDT功能:浮点数格式

7、化入口条件:待格式化浮点操作数在[R0]中。出口信息:已格式化浮点操作数仍在[R0]中。影响资源:PSW、A、R2、R3、R4、位1FH堆栈需求:6字节FSDT:LCALLMVR0;将待格式化操作数传送到第一工作区中LCALLRLN;通过左规完成格式化LJMPMOV0;将已格式化浮点操作数传回到[R0]中(2)标号:FADD功能:浮点数加法入口条件:被加数在[R0]中,加数在[R1]中。出口信息:OV=0时,和仍在[R0]中,OV=1时,溢出。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。