堆栈:返回地址

函数被调用之前,堆栈上的返回地址是否与程序计数器的值相同? 它们似乎都涉及相同的概念,即与函数返回后要执行的下一条指令。


是。 调用机制是这样工作的(它可能不会这样工作,因为不同的x86架构有不同的微架构,但这个“算法”给出了要点):

当呼叫指令被执行时, RIP被短暂地设置为呼叫之后的指令地址。 call的执行会将RIP的值压入堆栈,然后将RIP设置为call目标的解析地址。

详情请参阅第1卷第6章的官方手册。

链接地址: http://www.djcxy.com/p/14105.html

上一篇: Stack: return address

下一篇: Debugging Instruction Pointer when IP points to 0