gpt4 book ai didi

assembly - ret 指令是否将 4 添加到 esp 寄存器?

转载 作者:行者123 更新时间:2023-12-04 09:37:50 33 4
gpt4 key购买 nike

是否 ret instruction导致“esp”寄存器增加4?

最佳答案

是的,它执行

pop eip

您可以使用
mov eax, [esp]
jmp eax

避免它。

编辑:这正是 ret做。例如, jmp rel_offet只不过是一个隐藏的 add eip, offset , 或 jmp absolute_offsetmov eip, absolute_offset .当然,处理器处理它们的方式存在差异,但从程序员的角度来看,这就是全部。

此外,还有一种特殊形式的 ret : ret imm8这也将此 imm8 值添加到 esp :例如 __stdcall函数使用它从堆栈中丢弃其参数。更不用说 retf在 16 位模式下使用的版本,也会弹出 cs从堆栈中。

编辑2:
pop register

方法:
mov register, [esp]
add esp, 4

关于assembly - ret 指令是否将 4 添加到 esp 寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4292447/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com