ITEEDU

7.3.3 堆栈传递参数

堆栈是一个特殊的数据结构,它通常是用来保存程序的返回地址。当用它来传递参数时,势必会造成数据和返回地址混合在一起的局面,用起来要特别仔细。

具体做法如下:

(1)、当用堆栈传递入口参数时,要在调用子程序前把有关参数依次压栈,子程序从堆栈中取到入口参数;

(2)、当用堆栈传递出口参数时,要在子程序返回前,把有关参数依次压栈(这里还需要做点额外操作,要保证返回地址一定在栈顶),调用程序就可以从堆栈中取到出口参数。

在通常情况下,我们用堆栈传入口参数,用寄存器传出口参数。

1、用堆栈传递入口参数的调用方法:

…

PUSH Para1

…

PUSH Paran ;把n个字的参数压栈 

CALL? SUBPRO ;调用子程序SUBPRO

…