- 打卡等级:偶尔看看I
- 打卡总天数:12
- 最近打卡:2025-03-18 21:30:53
已绑定手机
注册会员
- 积分
- 120
|
发表于 2025-3-12 23:38:21
|
显示全部楼层
写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率。与ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各种不同的模式对应不同的实际硬件系统,也将有不同的编译结果。
在51系列中data,idata,xdata,pdata的区别:
data:固定指前面0x00-0x7F的128字节的RAM,可以用ACC直接读写,速度最快,生成的代码也最小。
idata:固定指前面0x00-0xFF的256个RAM,其中前128字节和data的128字节完全相同,只是访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx(补充:c中idata做指针式的访问效果很好)
xdata:外部扩展RAM,一般指外部0x0000-0xFFFF空间的64K字节,用DPTR访问。
pdata:外部扩展RAM的低256个字节,地址出现在A0-A7上时读写,PDATA 段只有256 个字节,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG,建议少用。pdata的优点:对PDATA 和XDATA 的操作是相似的,但是对PDATA 段寻址比对XDATA 段寻址要快,因为对PDATA 段寻址只需要装入8 位地址,而对XDATA 段寻址需装入16 位地址。
单片机C语言unsigned char code table[] code 是什么作用?
code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,对应的还有data是存入RAM的意思。 |
|