我知道在调用例程时,处理器会存储调用例程的代码的内存地址,以便在调用例程“返回”时知道继续执行的位置。这个地址(命名为返回指令)指针)存储在堆栈中。
我有三个问题:
答案 0 :(得分:2)
堆栈中的哪个位置存储了返回指令指针?
存储在任何堆栈中的任何内容始终存储在堆栈的顶部。这是根据" stack"的定义。
函数返回时如何使用RIP?
当函数执行" return"指令,弹出堆栈顶部的值,并存储在指令指针中。
这会导致程序继续执行?
它停止了。这不是call
指令。这是call
指令后面的指令。