x86调用指令有哪些替代选择?
也许像推回寄信人地址然后跳转一样?
它们也是获取内存中当前位置的命令吗?
最佳答案
call
指令实际上为您执行此操作。例如,call my_func
将执行以下操作:
push ret_address
jmp my_func
后续的
ret
调用在某种意义上只会使用您刚刚推回jmp
的地址。是否有特定原因导致您不想使用call
或对您不可用?对于内存中的当前位置,您可以尝试读取
eip
寄存器(无法对其进行写操作)。
关于assembly - 替代x86汇编的“调用”指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060970/