对于51单片机的RAM内存分配(包含栈的分配)
我使用的是SH79F3283,内部RAM有256字节,由常规寄存器、静态存储区和堆栈组成的,创建一个新的程序默认占用9个字节RAM,其中分别为R0到R7的常规寄存器和一字节的栈空间(一字节的栈空间是在启动文件里暂时分配的)程序里定义的全局变量会放在静态存储区,局部变量、形参、嵌套函数地址和字符串首地址会放在栈区,字符串会放在ROM区,00h-1Fh 32个字节是4组常规寄存器,通过 PSW中的RS1、RS0两位来选择使用哪一组,默认第0组,占用地址00h-07h,接着就是静态存储区(从地址08h开始),最后是堆栈空间,本实验中没申请堆空间,所以堆空间不存在。
栈空间多大呢
从栈的开始地址到FFh(51单片机是7Fh,52单片机是FFh)就是栈空间的地址。