堆栈:返回地址

时间:2015-10-13 07:18:55

标签: assembly x86 stack return

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

1 个答案:

答案 0 :(得分:3)

是。调用机制就是这样工作的(它可能不会以这种方式工作,因为不同的x86架构有不同的微体系结构,但这个"算法"给出了要点):

当执行取出的调用指令时,RIP被临时设置为调用之后的指令的地址。执行call会将RIP的值推到堆栈上,然后将RIP设置为call目标的已解析地址。

第1卷第6章中的详细信息in the official manual