6

在阅读某些 CPU 架构中的一些调用约定时,我读到了类似的内容

“结语和序言”,当从另一个函数调用一个函数时。

什么是功能序言或结语?

4

2 回答 2

10

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

序言通常执行以下任务:

  • 保存函数可能使用的任何寄存器(平台标准要求在函数调用之间保留这些寄存器)
  • 在堆栈上分配函数可能需要用于局部变量的存储空间
  • 设置指向可能在堆栈上传递的参数的任何指针(或其他链接)

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

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

于 2010-07-12T19:03:04.423 回答
2

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

在我看来,这似乎很好地解释了它。如果有任何不清楚的地方,请告诉我,我可以尝试解决问题。

于 2010-07-12T18:57:36.720 回答