首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

keilc51 变量存放位置?解决方法

2012-03-06 
keilc51 变量存放位置?在keil的small模式中常量放在rom中局部变量放在固定的内存空间?这句不懂,那个内存空

keilc51 变量存放位置?
在keil的small模式中   常量放在rom中  
局部变量放在固定的内存空间?这句不懂,那个内存空间包括R0-R7吗
那么外部变量   全局变量等有放在那里?
如:
char   a;//全局变量
bit   aa;
function1()
{
      char   b;   //局部变量
      bit   bb;
function2();
}

funcion2()
{
bit   cc;
    char   c;//局部变量
}
//那么   a   b   c     aa   bb   cc   在单片机s52中的存放地址大概是在那里?
会不会相互收到影响?

[解决办法]
全变量定义可以用
_at_关键字进行定位,嘿嘿

具体的变量的怎么存放它是编译器去做的事...

那个内存空间包括R0-R7吗?
这个主要是对应PC里的寄存器
[解决办法]
无论什么变量都放在 DATA 区 (包括直接寻址区和间接寻址区),R0 - R7 主要是用来做调用函数时传递参数的
[解决办法]
还有一个问题想问:在89c51ram中高128除了SFR可用外 其他不可以作普通ram单元用??是吗?如果是,那么为什么它们SFR不连续编址,这样不更好记吗?


这是为了硬件设计简单。你没发现sfr中80,88,90。。。的单元都是可位寻址的?这是有原因的。

热点排行