x64参数调用规范
Posted buaawang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了x64参数调用规范相关的知识,希望对你有一定的参考价值。
http://kelvinh.github.io/blog/2013/08/05/windows-x64-calling-conventions/
假设传递的参数的个数为n,那么
当n为奇数时,调用者需要分配0x20+8+(n-1)*8的栈空间
其中,0x20=32,用来保存调用者本地变量RCX, RDX, R8, R9,8字节用来保持栈地址16字节对齐,(n-1)*8大小的空间用来保存参数,按照从右向左的顺序,虽然低0x20大小的空间不使用,这部分参数通过RCX, RDX, R8, R9传递,但仍需要调用者为开始的四个参数分配空间。
当n为偶数时,调用者需要分配0x20+(n-1)*8的栈空间
这里,少了8字节,因为参数的个数为偶数,此时无需额外的8字节便可以保持栈地址16字节对齐
以上是关于x64参数调用规范的主要内容,如果未能解决你的问题,请参考以下文章