【问题标题】:Whats the difference between EIP and Return Adress?EIP和返回地址有什么区别?
【发布时间】:2015-10-05 00:46:39
【问题描述】:

谁能解释一下 EIP 和返回地址的区别?

看起来是一样的,但是在我的调试器中,却表明它们是不同的。

【问题讨论】:

  • 为了让您的问题更好:您能否添加更多标签,至少关于您使用的语言、工具等。
  • 对不起,我是初学者,不太习惯
  • 没关系:)。您可以单击问题下方的编辑并添加更多标签。另请务必查看教程:stackoverflow.com/tour。您可以按照 Stackoverflow 的指南获得更多信息。

标签: callstack eip


【解决方案1】:

EIP 寄存器保存即将执行的指令的地址。执行调用时,从 EIP 中的地址读取指令,EIP 在调用指令之后递增,并且此更新的 EIP(即调用后指令的地址)被压入堆栈 - 它成为返回地址 -并将函数地址加载到 EIP 中作为下一条执行指令。当函数的return语句被执行时,它会将返回地址从堆栈中弹出并加载到EIP中,以便在调用指令之后继续执行。

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2020-06-04
    • 2012-03-22
    相关资源
    最近更新 更多