码迷,mamicode.com
首页 > Windows程序 > 详细

Win 64 register usage

时间:2015-08-15 11:34:08      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

http://www.mouseos.com/win64/registers.html

 

下面是摘自 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

标签:

原文地址:http://www.cnblogs.com/yinguo/p/4731983.html

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