C-51的数据存储区域与性能
来源:互联网 发布:大连市软件行业协会 编辑:程序博客网 时间:2024/05/01 18:11
C-51中数据存储有不同的区域,最常用的就是DATA和XDATA区,其中:
DATA区位于RAM的低128字节,可在一个周期内直接寻址,不过需要注意系统的堆栈也使用这个区域,所以如果程序中如果有较多的中断处理程序,或者函数调用较多,则需要谨慎使用该区域的变量,以免变量和堆栈区域重合,程序运行时就会发生不可预料的后果,这种错误查找起来是非常麻烦的。
XDATA就是片外RAM了,一般最大可达64K,使用DPTR间接寻址。性能上稍微慢了一点,但是不会对堆栈产生不良影响。
函数调用的形参传递,C-51使用外部存储区域,也就是XDATA区域传递形参,所以在定义函数的时候,对于形参指定DATA区是没有用的,这也是我在查看编译后的汇编代码发现的。
DATA区位于RAM的低128字节,可在一个周期内直接寻址,不过需要注意系统的堆栈也使用这个区域,所以如果程序中如果有较多的中断处理程序,或者函数调用较多,则需要谨慎使用该区域的变量,以免变量和堆栈区域重合,程序运行时就会发生不可预料的后果,这种错误查找起来是非常麻烦的。
XDATA就是片外RAM了,一般最大可达64K,使用DPTR间接寻址。性能上稍微慢了一点,但是不会对堆栈产生不良影响。
函数调用的形参传递,C-51使用外部存储区域,也就是XDATA区域传递形参,所以在定义函数的时候,对于形参指定DATA区是没有用的,这也是我在查看编译后的汇编代码发现的。
- C-51的数据存储区域与性能
- C++应用程序性能优化笔记(一)——数据的存储区域
- JAVA存储数据的五个区域
- c语言---数据的存储与运算
- [转]C语言程序的存储区域
- C语言程序的存储区域
- C 语言程序的存储区域
- C语言运行程序的存储区域
- C语言程序的存储区域
- C/C++语言程序的存储区域
- C语言程序的存储区域
- C语言存储区域的划分
- C语言程序的存储区域
- C语言存储区域
- C、C++存储区域
- C语言存储区域
- 指针与数组不同的存储区域
- iOS 的内存与存储区域
- c# 反射的用法
- Understanding MySQL Internals 3:搭建环境
- ACE环境构建笔记(Linux)
- CString如何转COleDateTime
- 通用不间断滚动JS封装类
- C-51的数据存储区域与性能
- Cool! XDialogHeader
- 静态编译wxWidgets 2.8.7
- 用FFDShow进行WMV编码
- 缓存AOP编程的文摘(java例子),数据缓存切入编程的文章。【截取】
- 一个Max和Min的技巧
- 关于文件系统设备堆栈的说明
- 神經性扁頭疼
- DirectX SDK 与 DirectShow SDK