栈区内存,由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 *** 作方式类似于数据结构中的栈。访问顺序遵循先进后出原则。 栈stack:是程序启动时候由程序留出的工作内存区 比如程序的局部变量,函数调用等都是从栈中获取,
堆栈指针SP是存放当前堆栈栈顶所对应的存储单元地址的一个8位寄存器。 SP的值,可以由软件设定,所以,整个片内RAM区域的任何位置都可以作为堆栈区使用。 51系列的单片机的RAM,只有低128字节,范围是00~7FH; 52系列的单片机的RAM,共有256字节,范围是00~FFH。任何位置都可以作为堆栈区使用。系统复位后SP为07H,这时的堆栈空间是08单元及其相连的高地址,但是这里却是寄存器区1所在的地址空间。所以,一般在复位后,应立即对SP赋值,重新指定栈底,使堆栈区设定在RAM中的另一区域。使用高128字节单元当做堆栈区,也是可以的,但是必须是使用52系列的单片机。
以上就是关于一个程序编译后,对于栈内存空间的大小,是如何定的呢全部的内容,包括:一个程序编译后,对于栈内存空间的大小,是如何定的呢、什么是堆栈堆栈区在RAM中的地址空间范围是多少、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)