1.8 堆  栈

1.8 堆 栈

堆栈是满足“先进后出”原则的一个存储区。按堆栈的实现可分为硬堆栈和软堆栈两种。硬堆栈是在CPU中设置8~16个专用寄存器组,信息采用“先进后出”的存取原则。软堆栈是程序设计人员用软件在存储器中划出一块存储区作堆栈。这个存储区的一端是固定的,另一端是浮动的。所有信息的存取都在浮动的一端进行。如图1-10所示。这个存储区的最大地址的存储单元为堆栈的底部——栈底(Bottom)。在堆栈中存放信息从栈底开始,向地址小的方向“堆积”。在任何时刻,存放最后一个信息的存储单元(即已存放数据信息的最小地址单元)为堆栈的顶部——栈顶(Top)。栈顶随堆栈存储信息的多少而浮动,通常设计一个指针SP(Stack Pointer)堆栈指针,它始终指向堆栈的顶部。

img24

图1-10 软堆栈的结构