EIP 和 Return 地址有什么区别?
Whats the difference between EIP and Return Adress?
谁能解释一下EIP和return地址的区别?
好像是一样的,但是在我的调试器中,却表明它们是不同的。
EIP寄存器保存着即将执行的指令的地址。执行调用时,从 EIP 中的地址读取指令,EIP 递增超过调用指令,并将更新后的 EIP(即调用后指令的地址)压入堆栈 - 它变为 return 地址 - 函数地址作为下一条要执行的指令加载到 EIP 中。当函数的return语句被执行时,它将return地址弹出堆栈并将其加载到EIP中,以便在call指令之后继续执行。
谁能解释一下EIP和return地址的区别?
好像是一样的,但是在我的调试器中,却表明它们是不同的。
EIP寄存器保存着即将执行的指令的地址。执行调用时,从 EIP 中的地址读取指令,EIP 递增超过调用指令,并将更新后的 EIP(即调用后指令的地址)压入堆栈 - 它变为 return 地址 - 函数地址作为下一条要执行的指令加载到 EIP 中。当函数的return语句被执行时,它将return地址弹出堆栈并将其加载到EIP中,以便在call指令之后继续执行。