在机器中的实现细节如图:
注意 :上图中的返回地址是去之后计算出的下一条指令的地址,并将其压入栈中。
在函数返回之前,栈指针已经指向的返回地址所在的内存空间。
对于栈空间的分配和释放,机器指令并不负责。所以调用前的栈空间分配,和返回前的栈空间释放,都需要汇编代码来负责执行。
By The Way :
处理器将不同的指令分为固定顺序的几个阶段来执行,使处理器能以相同的行为来处理不同的指令。提高硬件的利用率。