在 x64 上将参数压入堆栈的顺序
Order that arguments are pushed on stack on x64
x64 参数以什么顺序压入堆栈:
- 在系统 V ABI 中?
- 在 Windows ABI 中?
我正在编写一个 Java FFI 库,它使用动态生成的存根,这些存根取决于此顺序。
我怀疑它是"floats first"但我不确定。
来自System V ABI, Section 3.2.3:
Once registers are assigned, the arguments passed in memory are pushed on
the stack in reversed (right-to-left) order.
Windows x64 ABI 非常不正式,它没有指定堆栈参数的顺序。
然而从Wikipedia和常识我们可以得出与上述相同的结论:
Additional arguments are pushed onto the stack (right to left)
x64 参数以什么顺序压入堆栈:
- 在系统 V ABI 中?
- 在 Windows ABI 中?
我正在编写一个 Java FFI 库,它使用动态生成的存根,这些存根取决于此顺序。
我怀疑它是"floats first"但我不确定。
来自System V ABI, Section 3.2.3:
Once registers are assigned, the arguments passed in memory are pushed on the stack in reversed (right-to-left) order.
Windows x64 ABI 非常不正式,它没有指定堆栈参数的顺序。
然而从Wikipedia和常识我们可以得出与上述相同的结论:
Additional arguments are pushed onto the stack (right to left)