返回指令堆栈中的指针

时间:2017-04-04 19:28:17

标签: assembly x86 stack

我知道在调用例程时,处理器会存储调用例程的代码的内存地址,以便在调用例程“返回”时知道继续执行的位置。这个地址(命名为返回指令)指针)存储在堆栈中。

我有三个问题:

  • 堆栈中的哪个位置存储了返回指令指针?
  • 函数返回时如何使用RIP?
  • 这应该导致程序继续执行?

1 个答案:

答案 0 :(得分:2)

  

堆栈中的哪个位置存储了返回指令指针?

存储在任何堆栈中的任何内容始终存储在堆栈的顶部。这是根据" stack"的定义。

  

函数返回时如何使用RIP?

当函数执行" return"指令,弹出堆栈顶部的值,并存储在指令指针中。

  

这会导致程序继续执行?

它停止了。这不是call指令。这是call指令后面的指令。