当前位置:文档之家› c51中存储类型code-data

c51中存储类型code-data

单片机C 语言code 与data 的作用
单片机C 语言unsigned char code table[] code 是什么作用?
code 的作用是告诉单片机,我定义的数据要放在ROM (程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是),因为C 语言中没办法详细描述存入的是ROM 还是RAM (寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data 是存入RAM 的意思。

程序可以简单的分为code (程序)区,和data (数据)区,code 区在运行的时候是不可以更改的,data 区放全局变量和临时变量,是要不断的改变的,cpu 从code 区读取指令,对data 区的数据进行运算处理,因此code 区存储在什么介质上并不重要,象以前的计算机程序存储在卡片上,code 区也可以放在rom 里面,也可以放在ram 里面,也可以放在flash 里面(但是运行速度要慢很多,主要读flash
比读ram 要费时间),因此一般的做法是要将程序放到flash 里面,然后load 到 ram 里面运行的;DA TA 区就没有什么选择了,肯定要放在RAM 里面,放到rom 里面改动不了。

附:
c51中的存储类型
本文来自CSDN 博客,转载请标明出处:/erazy0/archive/2009/09/20/4573196.aspx
data ---> 可寻址片内ram
bdata ---> 可位寻址的片内ram
idata ---> 可寻址片内ram ,允许访问全部内部ram
pdata ---> 分页寻址片外ram (MOVX @R0) (256 BYTE/页) xdata ---> 可寻址片外ram (64k 地址范围)
code ---> 程序存储区 (64k 地址范围),对应MOVC @DPTR const 表示本c51中存储类型
数组不可修改数组为常量数组
code 表示本数组生成后是在ROM区中同样不可修改
idata 表示数组生成后在在0x00~0xff的256个RAM中,使用指针寻址
具体的参考下面
data,bdata,idata,pdata,xdata,code存储类型与存储区
bit是在内部数据存储空间中20H .. 2FH 区域中一个位的地址,或者8051 位可寻址SFR 的一个位地址。

code是在0000H .. 0FFFFH 之间的一个代码地址。

data是在0 到127 之间的一个数据存储器地址,或者在128 .. 255 范围内的一个特殊功能寄存器(SFR)地址。

idata是0 to 255 范围内的一个idata 存储器地址。

xdata 是0 to 65535 范围内的一个xdata 存储器地址。

相关主题