C51存储类型与8051存储空间对应关系,如表所示:
DATA区:
寻址是最快的,应把常使用的变量放在该区,但该区存储空间有限,DATA区除了包含程序变量外,还包含了堆栈和寄存器组。DATA区声明中的存储类型标识符为data,通常指片内RAM128字节的内部数据存储的变量,可直接寻址。
标准变量和用户自声明变量都可存储在DATA区中,只要不超过DATA区的范围即可,由于C51用默认的寄存器组来传递参数,这样DATA区至少失去8字节空间。
另外,当内部堆栈溢出的时候,程序会莫名其妙地复位。这是因为8051没有报错机制,堆栈溢出只能以这种方式表示,因此要留有较大的堆栈空间来防止堆栈溢出。
网友评论