码迷,mamicode.com
首页 > 其他好文 > 详细

x64参数调用规范

时间:2018-11-10 17:59:33      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:参数   个数   lin   ons   部分   参数调用   使用   空间   字节   

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

标签:参数   个数   lin   ons   部分   参数调用   使用   空间   字节   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!