博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
寄存器使用
阅读量:7169 次
发布时间:2019-06-29

本文共 618 字,大约阅读时间需要 2 分钟。

x64 体系结构提供了 16 个通用寄存器(以后称为整数寄存器),以及 16 个可供浮点使用的 XMM 寄存器。 易失寄存器是由调用方假想的临时寄存器,并要在调用过程中销毁。 非易失寄存器需要在整个函数调用过程中保留其值,并且一旦使用,则必须由被调用方保存。

下表说明了每种寄存器在整个函数调用过程中的使用方法:

 

Register

状态

使用

RAX

易失的

返回值寄存器

RCX

易失的

第一个整型参数

RDX

易失的

第二个整型参数

R8

易失的

第三个整型参数

R9

易失的

第四个整型参数

R10:R11

易失的

必须根据需要由调用方保留;在 syscall/sysret 指令中使用

R12:R15

非易失的

必须由被调用方保留

RDI

非易失的

必须由被调用方保留

RSI

非易失的

必须由被调用方保留

RBX

非易失的

必须由被调用方保留

RBP

非易失的

可用作帧指针;必须由被调用方保留

RSP

非易失的

堆栈指针

XMM0

易失的

第一个 FP 参数

XMM1

易失的

第二个 FP 参数

XMM2

易失的

第三个 FP 参数

XMM3

易失的

第四个 FP 参数

XMM4:XMM5

易失的

必须根据需要由调用方保留

XMM6:XMM15

非易失的

必须根据需要由被调用方保留。

转载于:https://www.cnblogs.com/crestxu/archive/2012/04/26/2471718.html

你可能感兴趣的文章
.net向android的转型(1)
查看>>
页面跳转到Area区域连接
查看>>
C#socket客户端自己输入消息发送到服务端通信实现通信
查看>>
拓扑规则翻译函数(转)
查看>>
B和strong以及i和em的区别(转)
查看>>
[转载]SVN使用教程
查看>>
[Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵
查看>>
android 获取所有SD卡目录
查看>>
A trick in loading Fixture to test django application
查看>>
发布一个参考tornado的高性能c++网络库:libtnet
查看>>
Android动画的实现 上
查看>>
android中完全退出当前应用程序的四种方法
查看>>
Android之WebViewClient与WebChromeClient的区别
查看>>
上传文件的相关操作
查看>>
Linux性能测试 strace命令
查看>>
C#中正则表达式使用介绍
查看>>
Java 开源博客——B3log Solo 0.5.0 正式版发布了!
查看>>
2018.6.5号----TeamViewer12 13 非商用出现商用限制怎么解决
查看>>
数据库-事务隔离级别和事务的传播属性
查看>>
ssh-ajax登陆action返回字符串
查看>>