1、满递减堆栈
特点是栈指针指向堆栈的最后一个已使用的地址,堆栈向存储器地址减小方向生长;
2、满递增堆栈
特点是指针指向堆栈的最后一个已使用的地址,堆栈向存储器地址增大方向生长;
3、空递减堆栈
特点是指SP指向堆栈的第一个没有使用的地址,堆栈向存储器地址减小方向生长;
4、空递增堆栈
特点是指SP指向堆栈的第一个没有使用的地址,堆栈向存储器地址增大方向生长。
扩展资料
堆栈是计算机科学领域重要的数据结构,它被用于多种数值计算领域,表达式求值是编译程序中较为常见的操作。
在算术表达式求值的过程中,需要使用堆栈来保存表达式的中间值和运算符,堆栈使得表达式的中间运算过程的结果访问具有了一定的自动管理能力。
大部分编译型程序设计语言具有程序递归特性,递归能够增强语言的表达能力和降低程序设计难度。递归程序的递归深度通常是不确定的,需要将子程序执行的返回地址保存到堆栈这种先进后出式的结构中,以保证子程序的返回地址的正确使用顺序。
函数式程序设计语言中,不同子函数的参数的种类和个数是不相同的,编译器也是使用堆栈来存储子程序的参数。
参考资料来源:百度百科--ARM寻址方式