Win 64 register usage
http://www.mouseos.com/win64/registers.html
Seems UEFI using rcx, rdx, r8, r9, r10, r11, r12 to store argv
下面是摘自 MSDN 的文章,在 Win64 下的 registers 用途
|
Register
|
Status
|
Use
|
| RAX | Volatile | Return value register |
| RCX | Volatile | First integer argument |
| RDX | Volatile | Second integer argument |
| R8 | Volatile | Third integer argument |
| R9 | Volatile | Fourth integer argument |
| R10:R11 | Volatile | Must be preserved as needed by caller; used in syscall/sysret instructions |
| R12:R15 | Nonvolatile | Must be preserved by callee |
| RDI | Nonvolatile | Must be preserved by callee |
| RSI | Nonvolatile | Must be preserved by callee |
| RBX | Nonvolatile | Must be preserved by callee |
| RBP | Nonvolatile | May be used as a frame pointer; must be preserved by callee |
| RSP | Nonvolatile | Stack pointer |
| XMM0 | Volatile | First FP argument |
| XMM1 | Volatile | Second FP argument |
| XMM2 | Volatile | Third FP argument |
| XMM3 | Volatile | Fourth FP argument |
| XMM4:XMM5 | Volatile | Must be preserved as needed by caller |
| XMM6:XMM15 | Nonvolatile | Must be preserved as needed by callee. |
1. 传递参数
在 Win64 里使用下面寄存器来传递参数:
- rcx - 第 1 个参数
- rdx - 第 2 个参数
- r8 - 第 3 个参数
- r9 - 第 4 个参数
其它多出来的参数通过 stack 传递。
使用下面寄存器来传递浮数数:
- xmm0 - 第 1 个参数
- xmm1 - 第 2 个参数
- xmm2 - 第 3 个参数
- xmm3 - 第 4 个参数
Win 64 register usage的更多相关文章
- PHP 5.3.13 memcache win 64 配置和安装
--环境: windows 2008 R2 64位 wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-x64 --目标: 实现 php 用memcach ...
- Oracle11g +Win 64+PLSQL9.0
最近在Oracle11g配置数据库的时候发现了一个问题,就是找不到监听,网上说win7的64位的系统必须装上32位的客户端才能被PLSQL 识别,事实上也是这样,PLSQL 只能识别32位的客户端,所 ...
- PLSQL Developer 不能连接 oracle 12c 64位 的解决办法 for win 64
1.安装Oracle 12c 64位 2.安装32位的Oracle客户端( instantclient-basic-nt-12.1.0.1.0) 1) 下载instantclient-basic-nt ...
- caffe windows 学习第一步:编译和安装(vs2012+win 64)
没有GPU,没有linux, 只好装caffe的windows版本了. 我的系统是win10(64位),vs 2012版本,其它什么都没有装,因此会需要一切的依赖库. 其实操作系统只要是64位就行了, ...
- Windows 环境搭建Redis集群(win 64位)
转: http://blog.csdn.net/zsg88/article/details/73715947 参考:https://www.cnblogs.com/tommy-huang/p/6240 ...
- 2 pygraphviz在windows10 64位下的安装问题(反斜杠的血案)
可以负责任的说,这篇文档是windows10安装pygraphviz中,在中文技术网站中最新的文档,没有之一.是自己完全结合各种问题,包括调试等,总结出来的. 问题来源:主要是可视化RvNN网络的树结 ...
- apache win openssl
Rubayat Hasan Software Development, Music, Web Design, life, thoughts… Home Portfolio Projects Con ...
- win php安装 oracle11 g
1.下载plsql和oracle11g plsql安装比较简单,就是普通的安装.oracle11 g不用安装, 下面我讲解一下win 64位的系统配置oracle: (1).首先我使用的是warpse ...
- win7 64位debug解决方法
1.下载win 64位的DOSBox,如DOSBox0.74: 2.下载win 32 debug.exe,并复制到调用的目录,如d盘根目录d:\ 3.安装DOSBox,并运行:如下图: 4.键入命令: ...
随机推荐
- 夺命雷公狗---TP商城----TP之配置环境---1
下载到tp3.2.3版本后架设到自己的wamp环境下,然后配置虚拟主机,完事后直接开工 环境下创建一个文件夹,然后里面存放这这两个文件即可开始新的旅途了 这里完了,下一步就开始配置index.php文 ...
- 【py网页】urlopen的补充,完美
urllib 是 python 自带的一个抓取网页信息一个接口,他最主要的方法是 urlopen(),是基于 python 的 open() 方法的.下面是主要说明: 1 urllib.urlopen ...
- 【crunch bang】增加壁纸图片文件
将你的壁纸图片复制到 ~/images/wallpapers/shared即可.当然你得在终端用cp命令,因为这个目录是有权限到
- 数据结构之,线性表去除等于x的元素
问题看起来很简单,但是这里有个限制,就是算法的时间复杂度位O(n),空间复杂度为O(1),下面上代码 #include <iostream> #include <string.h&g ...
- jenkins相关
1. jenkins maven tomcat做持续集成的时候几个关键配置:http://my.oschina.net/congqian/blog/112782?fromerr=PmIDbLs5 2. ...
- ubuntu下搭建JAVA开发环境【转】
转自:http://jingyan.baidu.com/article/86fae346b696633c49121a30.html JAVA开发环境是一种跨平台的程序设计语言,可以在windows.L ...
- 启用WCF测试客户端的相关技巧
在Visual Studio之外打开WCF测试客户端有两种方法:第一种方法是到其所在路径(Visual Studio安装路径\Common7\IDE\WcfTestClient.exe)双击打开.第二 ...
- maven打包异常
maven打包异常,如图: 问题原因:服务器密码错了.
- unicode转码,如:\u6d4b\u8bd5转成中文“测试”
public static void main(String[] args) { String s = "测试"; String tt = gbEncoding(s); // St ...
- Nagios监控远端的mysql
工作原理: 利用特定的用户定期访问指定的mysql数据库.当不能访问或连不通时则报警. 1.在生产库上安装nagios插件 安装略 备注:编译完显示一定要有mysql支持,不然没有chec ...