Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1807829
  • 博文数量: 134
  • 博客积分: 2488
  • 博客等级: 大尉
  • 技术积分: 7554
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-26 21:19
个人简介

1.每日自省; 2.享受人生; 3.尽力而为; 4.坚持不懈; 5.切莫急躁; 6.慎言敏行; 7.动心忍性; 8.上善若水。

文章分类

全部博文(134)

文章存档

2014年(38)

2013年(42)

2012年(15)

2011年(39)

分类: C/C++

2011-05-05 16:03:23

        C中定义的全局变量、数组就是固定的了,直接操作,比较方便。实际的地址是编译器自动分配的,具体在哪里要看汇编。
        汇编里可以直接指定,这是汇编的好处。
        以下转自网络
        在网上看到有人提到在keil中使用_at_进行绝对地址定位问题,我简单介绍一下它的用法。
        使用_at_关键字对存储器进行绝对地址定位程序如下

#include

char xdata LED_Data[50] _at_ 0x8000;

main()

{

LED_Data[0] = 0x23;

}

在keil中运行以上程序可以在存储器窗口中输入 x:0x8000 可以看到0x8000地址中的值为0x23.

值得指出的几点是

1.在给变量LED_Data[50]定位绝对地址空间时,不能对其赋初值。

2.char xdata LED_Data[50] _at_ 0x8000;这条语句不能在主函数中。有些网友提到在按着keil说明中用_at_进行绝对地址定位时,编译会出现错误274,就是将这条语句放在主函数中的原因。

3.keil中地址是自动分配的,所以除非特殊情况否则不提倡使用绝对地址定位。
阅读(2938) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~