压缩BCD编码浮点数:速度优化与资源管理
本资源是一份针对单片机与DSP系统设计的浮点数转换为压缩BCD码的程序代码。该程序的主要目标是提高执行速度和减少程序代码量,适用于资源有限的环境。以下是关键知识点的详细说明: 1. **浮点数处理**: 浮点数被转换为压缩BCD(二进制编码十进制)码,这是一种将浮点数的整数部分和小数部分分开存储的方法。浮点数首先被判断其符号,正数位7:0为0,负数位7:0为1。接下来,位6:0表示小数点前的位数,而位5:0表示小数点后0的位数。这种编码方式使得有效位仅为7位,占用3个半字节(即2、3、4字节),其中最后一个字节通常废弃。 2. **程序资源使用**: 该程序使用了特定的寄存器和堆栈空间:PSW(程序状态字寄存器)、A、B、DPTR(数据指针)、R0-R7(通用寄存器)以及SP(堆栈指针)深度6。内存中RAM被预留了5个字节用于存储转换后的数据。 3. **编程语言与工具**: 代码是用C语言编写的,并通过Keil编译器实现。C51语言是程序的基础,作者陈远征在研究C51的不足后,开发了这个浮点数处理函数`ftod`,并利用了Keil的FPMUL子程序来加速计算。 4. **程序结构**: C语言版本的`ftod`函数接受一个浮点数`i`作为输入,将其转换后存储在`cyz`数组中。汇编版本的`_FTOD`函数则负责实际的浮点数到压缩BCD码的转换,它接收参数并通过R4-R7传递。程序流程包括判断数符、取绝对值、存储BCD码等步骤。 5. **时间背景**: 这个程序是在2003年5月8日发布,体现了当时作者对快速执行和紧凑代码的追求,以及对汇编语言和C51深入理解的背景。 6. **版权声明**: 作者强调了在转发或使用该程序时,应保留源代码和相关信息,以尊重原创性和知识产权。 综上,这个资源提供了一个实用的单片机与DSP系统中浮点数到压缩BCD编码的转换方案,对于需要高效处理浮点数应用的开发者来说,具有一定的参考价值。
下载后可阅读完整内容,剩余4页未读,立即下载
- 粉丝: 3
- 资源: 902
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解