中级会员
 
- 积分
- 292
- 金钱
- 292
- 注册时间
- 2012-9-12
- 在线时间
- 18 小时
|

楼主 |
发表于 2012-11-2 10:18:37
|
显示全部楼层
回复【3楼】DGZL:
---------------------------------
谢谢,根据你的回复我百度了一下,是下面这样的吧,谢谢大家
如果你用的是Keil编译器,51内核(加强)以及52以上内核的RAM有256字节的内存,
低128字节位于data区,通过直接寻址访问,代码体现为 data unisgned char/int/long YourValue;
高128字节位于idata区,通过间接寻址访问,代码体现为 idata unsigned char/int/long YourValue;
在Keil编译器里通过存储区域关键字data,idata,code...来选择变量的存放位置,不同的存放位置汇编语言会自己生成访问代码。
或者通过指针实现:
unisgned char ucDataAreaLoc = (unsigned char data *)0x56; //将0x56转换为指向data区域的指针
*ucDataAreaLoc就是对高128字节中0x56地址单元的引用。
|
|