这可能是一个简单的问题,但我对这一段时间感到困惑:
假设我有类似的东西
main:
...
call some_fun
...
some_fun:
...
jmp op
...
op:
...
ret
Run Code Online (Sandbox Code Playgroud)
这会正确地返回到呼叫开始的地方吗?如果没有,那么ret将如何正确返回?
如果在提供的示例中,您希望它在返回之后执行的下一条指令是调用some_fun之后的指令,那么它将完全按照您的要求执行,前提是您在返回之前清理堆栈帧.
假设您正在使用x86程序集,这是正在发生的事情.
希望这可以帮助.