首页 > 其他 > 详细

x64参数调用规范

时间:2018-11-10 17:47:39      阅读:150      评论:0      收藏:0      [点我收藏+]

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参数调用规范

原文:https://www.cnblogs.com/buaawang/p/9939794.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!