·栈 栈是程序运行时为了存储子程序局部变量和返回信息而开辟的一块空间,它的大小可以由编译注释$M设定。每调用一次子程序,就会在栈中开辟一块空间存储参数、局部变量和返回信息,当子程序执行完毕并返回上一层时,就会释放该空间。栈空间越大,子程序的调用层数就越大。
·获取栈剩余空间尺寸
调用子程序时,如果栈空间不足,就会产生栈溢出错误,导致程序终止运行。如果条件允许,可以在某些子程序调用处加上一个栈剩余空间检测,如果栈剩余空间过小,则不调用子程序。这就需要获取当前栈的剩余空间尺寸。Pascal提供了一个函数function SPtr:Word,它可以获取寄存器SP的值,即是栈顶指针,实际上就是栈的剩余空间尺寸了。