帧指针的初始位置是什么

时间:2014-06-26 17:12:37

标签: cpu-registers isa

当我们调用一个函数时,我们将使用Stack Pointer和Framer Pointer。 我知道SP的功能和初始位置,但FP怎么样?

1 个答案:

答案 0 :(得分:0)

这取决于架构,应该在ABI手册中记录。

通常,函数不依赖于在序言之前正确初始化帧指针,而只是将值存储在堆栈上,然后将帧指针设置为当前堆栈指针(因此,通过跟随帧指针,您会发现固定偏移量的前一个函数的帧指针。)

请记住,帧指针在大多数情况下是可选的(如果您没有调试信息并且想要跟随调用堆栈,或者当前函数使用alloca,则需要它,否则它是只是一个寄存器会浪费。