Function x64组装功能(调用/返回vs推/弹出/跳转)
使用内置的调用和返回指令与手动推送和弹出堆栈以及使用函数跳转有什么区别?从功能上讲,如果操作正确,则什么都没有。 但是,使用Function x64组装功能(调用/返回vs推/弹出/跳转),function,assembly,64-bit,x86-64,Function,Assembly,64 Bit,X86 64,使用内置的调用和返回指令与手动推送和弹出堆栈以及使用函数跳转有什么区别?从功能上讲,如果操作正确,则什么都没有。 但是,使用push/pop模拟call/ret需要更多的指令和/或寄存器。当然,如果你真的想把它发挥到极致,你也可以使用lea和mov:)模拟push/pop) 此外,当前的处理器有专门的硬件来处理用于分支预测的函数调用,这可能不适用于您的备用序列,因此您将受到性能惩罚
push
/pop
模拟call
/ret
需要更多的指令和/或寄存器。当然,如果你真的想把它发挥到极致,你也可以使用lea
和mov
:)模拟push
/pop
)
此外,当前的处理器有专门的硬件来处理用于分支预测的函数调用,这可能不适用于您的备用序列,因此您将受到性能惩罚