压缩BCD编码浮点数:速度优化与资源管理
70 浏览量
更新于2024-08-30
收藏 56KB PDF 举报
本资源是一份针对单片机与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编码的转换方案,对于需要高效处理浮点数应用的开发者来说,具有一定的参考价值。
点击了解资源详情
点击了解资源详情
211 浏览量
245 浏览量
115 浏览量
185 浏览量
259 浏览量
131 浏览量
186 浏览量

weixin_38557670
- 粉丝: 3
最新资源
- Linux平台PSO服务器管理工具集:简化安装与维护
- Swift仿百度加载动画组件BaiduLoading
- 传智播客C#十三季完整教程下载揭秘
- 深入解析Inter汇编架构及其基本原理
- PHP实现QQ群聊天发言数统计工具 v1.0
- 实用AVR驱动集:IIC、红外与无线模块
- 基于ASP.NET C#的学生学籍管理系统设计与开发
- BEdita Manager:官方BEdita4 API网络后台管理应用入门指南
- 一天掌握MySQL学习笔记及实操练习
- Sybase数据库安装全程图解教程
- Service与Activity通信机制及MyBinder类实现
- Vue级联选择器数据源:全国省市区json文件
- Swift实现自定义Reveal动画播放器效果
- 仿53KF在线客服系统源码发布-多用户版及SQL版
- 利用Android手机实现远程监视系统
- Vue集成UEditor实现双向数据绑定