什么是功能结局和序言?

Ren*_*h G 5 compiler-construction assembly terminology cpu-architecture calling-convention

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

当一个函数从另一个函数调用时,"结语和序言".

什么是功能序言或结语?

Mic*_*urr 9

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

序言通常执行以下任务:

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

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

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