堆栈:返回地址
函数被调用之前,堆栈上的返回地址是否与程序计数器的值相同? 它们似乎都涉及相同的概念,即与函数返回后要执行的下一条指令。
是。 调用机制是这样工作的(它可能不会这样工作,因为不同的x86架构有不同的微架构,但这个“算法”给出了要点):
当呼叫指令被执行时, RIP
被短暂地设置为呼叫之后的指令地址。 call
的执行会将RIP
的值压入堆栈,然后将RIP
设置为call
目标的解析地址。
详情请参阅第1卷第6章的官方手册。
链接地址: http://www.djcxy.com/p/14105.html