4

虽然在某些CPU体系结构中阅读某些调用约定时,我读了类似于函数结尾和序言是什么?

“epilogue and prologue”,当从另一个函数调用函数时。

什么是函数序言或结语?

回答

8

函数的结尾和序言只是一组指令,它在函数调用时为函数设置上下文,并在函数返回时进行清理。

开场白通常执行的任务包括:

  • 保存所有的寄存器,该功能可以使用(由该平台的标准要求在函数调用中被保留)
  • 在栈上分配存储是该功能可能需要局部变量
  • 设置任何指针(或其他连接)至参数可能会在堆栈上传递

结语通常只需要恢复任何保存寄存器并恢复堆栈指针,以使该函数为自己使用而保留的任何内存被“释放”。

可能在序言/结语中使用的确切机制取决于CPU体系结构,平台标准,函数的参数和返回值以及函数可能使用的特定调用约定。

+0

非常感谢亲爱的伯尔 – 2010-07-12 19:26:45

2

维基百科FTW:https://en.wikipedia.org/wiki/Function_prologue

这似乎解释得相当好,在我看来。如果有什么不清楚的地方,让我知道,我可以尝试清理一些事情。

+0

不错。谢谢。 :-) – 2010-07-12 19:27:06