存储器生长堆栈可分为哪几种?各有什么特点

如题所述

1、满递减堆栈

特点是栈指针指向堆栈的最后一个已使用的地址,堆栈向存储器地址减小方向生长;

2、满递增堆栈

特点是指针指向堆栈的最后一个已使用的地址,堆栈向存储器地址增大方向生长;

3、空递减堆栈

特点是指SP指向堆栈的第一个没有使用的地址,堆栈向存储器地址减小方向生长;

4、空递增堆栈

特点是指SP指向堆栈的第一个没有使用的地址,堆栈向存储器地址增大方向生长。



扩展资料

堆栈是计算机科学领域重要的数据结构,它被用于多种数值计算领域,表达式求值是编译程序中较为常见的操作。

在算术表达式求值的过程中,需要使用堆栈来保存表达式的中间值和运算符,堆栈使得表达式的中间运算过程的结果访问具有了一定的自动管理能力

大部分编译型程序设计语言具有程序递归特性,递归能够增强语言的表达能力和降低程序设计难度。递归程序的递归深度通常是不确定的,需要将子程序执行的返回地址保存到堆栈这种先进后出式的结构中,以保证子程序的返回地址的正确使用顺序。

函数式程序设计语言中,不同子函数的参数的种类和个数是不相同的,编译器也是使用堆栈来存储子程序的参数。

参考资料来源:百度百科--ARM寻址方式

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-06
大致可分为三个区域:00H~1FH 为四组工作寄存器组(R0~R7),任何时刻单片机只使用其中1组,在中断等服务中指定使用和当前不一样的寄存器组,有利于快速现场保护,省去了R0~R7压栈、出栈的开销。20H~2FH 为位寻址区,可以按位寻址。当然也可以按字节寻址。30H~7FH 用户数据、堆栈区。
相似回答