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。。。的单元都是可位寻址的?这是有原因的。