windows – x64调用约定(堆栈)和varargs
发布时间:2020-12-14 01:55:55 所属栏目:Windows 来源:网络整理
导读:我已经阅读了 Microsoft’s documentation,但这个计划太尴尬了,我想我会仔细检查以确保我正确理解它… 我的理解是通过参数传递的通用方法是这样的: --- bottom of stack ---(return address)[shadow space for arg 1][shadow space for arg 2][shadow space
我已经阅读了
Microsoft’s documentation,但这个计划太尴尬了,我想我会仔细检查以确保我正确理解它…
我的理解是通过参数传递的通用方法是这样的: --- bottom of stack --- (return address) [shadow space for arg 1] [shadow space for arg 2] [shadow space for arg 3] [shadow space for arg 4] arg N arg N - 1 arg N - 2 ... arg 6 arg 5 ---- top of stack ----- 实现va_arg时似乎很尴尬……这实际上是否正确? 解决方法
正确的图表是
--- Bottom of stack --- RSP + size (higher addresses) arg N arg N - 1 arg N - 2 ... arg 6 arg 5 [shadow space for arg 4] [shadow space for arg 3] [shadow space for arg 2] [shadow space for arg 1] (return address) ---- Top of stack ----- RSP (lower addresses) [grows downward] 返回地址位于堆栈的顶部(最近推送),后面是前四个参数的阴影空间,后跟参数5和之后. 参数从右向左推:最后一个参数(N)被推动,因此它最接近堆栈的底部. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-7 – 如何通过SFTP轻松比较本地和远程文件
- 在Windows和Linux机器上使用Java程序创建新文件夹
- 微信创建菜单报 must use utf-8 charset hint 错误
- HTTP/1.1新建应用程序(会话)失败
- windows-server-2012-r2 – 如何在Windows 2012中禁用RC4?
- windows-7 – 不在路径上的Chocolatey安装包
- windows-server-2012 – 使用Powershell更新用户主目录
- windows-server-2008 – 如何将powershell脚本固定到任务栏
- windows-7 – Windows 7 – 组策略 – 允许保存RDP凭据
- 如何防止Windows在尝试通过Pcap.net连接到某人时发送RST数据
推荐文章
站长推荐
- xaml – 为什么TextBlock从文本中修剪结尾的空格
- 编写dll 关于declspec(dllexport)和declspec(dll
- .NET for Universal Windows Program是.NET Core
- Windows中的PHP CLI:处理Ctrl-C命令?
- Windows Server 2008,一个非常小的DDoS能够杀死我
- windows-server-2003 – 如何创建PDF打印服务器?
- windows-7 – 在DOS命令行上使用git要求输入密码
- 如何在Windows中创建虚拟打印机?
- windows-runtime – Winrt GridView虚拟化
- windows-xp – 如何在不进行域管理的情况下更改当
热点阅读