【本章小结】

 
子程序相当于高级语言中的过程和函数。子程序结构是模块化程序设计的重要工具。

  过程定义除PROC的属性要正确选择外,还应该注意子程序运行期间的堆栈状态。

  子程序的参数传送方法很多。可以通过寄存器、地址表以及堆栈传送。伪操作STRUC针对堆栈传送参数提供了方便。

  子程序允许嵌套。嵌套深度不限。子程序调用自身称为递归调用。这样的子程序称为递归子程序。递归子程序的设计必须保证每次调用都不破坏以前调用时所用的参数和中间结果,所以一般把每次调用的参数、寄存器内容及所有的中间结果都存放在堆栈中。递归子程序还必须包括基数的设置。当调用参数达到基数时,有条件转移指令实现嵌套退出,以保证能按反向次序退出并返回主程序。

  堆栈工作过程中有可能产生溢出。堆栈溢出有堆栈上溢和堆栈下溢两种情况。不论上溢或下溢,都是不允许的。因此在编制程序时应在程序中采取保护措施。