附录1B 过程控制
控制过程调用和返回的最常用的技术是使用栈。
栈的实现
栈是一个有序的元素集合,一次只能访问一个元素,访问点称做栈顶。栈中的元素数目,或者栈的长度是可变的。只可以在栈顶添加或删除数据项。基于这个原因,栈也称做下推表或后进先出(LIFO)表。
栈的实现需要有一些用于存储栈中元素的单元集合。图1-25给出一种典型的方法,在内存(或虚拟存储器)中为栈保留一块连续的单元。大多数时候,快中只有一部分填充着栈元素,剩余部分供栈增长时使用。正确操作需要三个地址,这些地址通常保存在处理器寄存器中。
-
栈指针:包含栈顶地址。如果往栈中添加(PUSH)或删除(POP)一项,这个指针减1或加1,以包含新的栈顶地址。