x86汇编通用寄存器用途一览

文章目录

  • 写在前面
  • 通用寄存器
  • 参考资料

写在前面

intel官方文档链接:Intel64和IA-32架构软件开发者手册
具体在Combined Volume Set of Intel® 64 and IA-32 Architectures Software Developer’s Manuals这本手册
(五千页我的天。。。)

不想翻阅英文的可以直接看下面的概括:主要是64位下寄存器的用途,以及他们仅使用低位时的名称,捎带一些32位模式下的不同用法

通用寄存器

64位寄存器名称用途32位寄存器名称32位下用途16位8位
rax保存系统调用号、函数调用的返回值、乘法运算结果的低64位、除法运算被除数的低64位、除法运算结果的商eaxaxal
rbxebx函数调用的第1个参数bxbl
rcxecx函数调用的第2个参数cxcl
rdx函数调用的第3个参数、乘法运算结果的高64位、除法运算被除数的高64位、除法运算结果的商edx用作函数调用的第3个参数dxdl
rdi函数调用的第1个参数edi用作函数调用的第5个参数didil
rsi函数调用的第2个参数esi函数调用的第4个参数sisil
rbpbase pointer,标识栈帧的起始位置;在函数调用的时候更改以分配栈空间(个人理解)rbp用作函数调用的第6个参数bpbpl
rsp永远指向栈顶,函数调用的时候需要先压栈保存espspspl
r8函数调用的第5个参数r8dr8wr8b
r9函数调用的第6个参数r9dr9wr9b
r10函数调用的第4个参数r10dr10wr10b
r11随便用(个人理解)r11dr11wr11b
r12随便用(个人理解)r12dr12wr12b
r13随便用(个人理解)r13dr13wr13b
r14随便用(个人理解)r14dr14wr14b
r15随便用(个人理解)r15dr15wr15b



参考资料

Combined Volume Set of Intel® 64 and IA-32 Architectures Software Developer’s Manuals
乘法和除法中rax和rdx寄存器的用途:

在这里插入图片描述
在这里插入图片描述

64位扩展下的寄存器名称:
在这里插入图片描述
在这里插入图片描述

linux系统man syscall:
第1-6个参数寄存器

在这里插入图片描述

系统调用号、返回值寄存器:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/468790.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++初阶:类和对象(下篇)】初始化列表 | static成员 | 友元

目录 一、构造函数构造函数体赋值🐾初始化列表🐾💦 explicit关键字 二、static成员🐾概念**💦 关于静态的特性** 三、友元💦 **友元函数**💦 **友元类** **四、内部类** 一、构造函数 构造函数…

【教学类-47-01】20240206UIBOT+IDM下载儿童古诗+修改文件名

背景需求: 去年12月,我去了其他幼儿园参观,这是一个传统文化德育教育特色的学校,在“古典集市”展示活动中,小班中班大班孩子共同现场念诵《元日》《静夜思》包含了演唱版本和儿歌念诵版本。 我马上也要当班主任了&a…

在微信视频号上发表视频

我们手机打开微信 然后 最下面选择 发现 然后点击 上面的视频号 进入后 点击 右上角头像图标 然后 进入个人管理界面 左下角选择 发表视频 然后 进入一个录制界面 我们左下角 点击这个 从相册选择 打开相册后 选择自己需要的视频 然后 点击右下角下一步 觉得内容没问题 就…

进阶C语言-动态内存管理

动态内存管理 🎈1.为什么存在动态内存分配🎈2.动态内存函数的介绍🔭2.1malloc和free函数🔭2.2calloc函数🔭2.3realloc函数 🎈3.常见的动态内存错误🔭3.1对NULL指针的解引用操作🔭3.2…

车载软件架构 —— Adaptive AUTOSAR软件架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了&#…

安卓价值1-如何在电脑上运行ADB

ADB(Android Debug Bridge)是Android平台的调试工具,它是一个命令行工具,用于与连接到计算机的Android设备进行通信和控制。ADB提供了一系列命令,允许开发人员执行各种操作,包括但不限于: 1. 安…

C++中的析构函数

一、析构函数概念 析构函数不是完成对象的销毁,对象的销毁是由编译器完成的。析构函数完成的是对象中资源的清理工作。通常是对对象中动态开辟的空间进行清理。 二、析构函数特性 1.析构函数的函数名是 ~类名 2.析构函数无参数无返回值 3.一个类中只能有一个析…

Unity(单元测试)在STM32上的移植与应用

概述 Unity Test是一个为C构建的单元测试框架。本文基于STM32F407为基础,完全使用STM32CubeIDE进行开发,移植和简单使用Unity。 单片机型号:STM32F407VET6 软件:STM32CubeIDE Version: 1.14.1 Unity Version:2.…

新项目,从0到1,SpringBoot+Vue.js权限管理系统,拿去做毕设

大家好,我是 jonssonyan 最近把以前做的权限管理系统重新整理了一下(将一些不规范的地方规范了一下,并且在关键地方写了注释),代码全部开源,这个项目是以现在主流的前后端分离模式开发的,包含前…

Django学习全纪录:编写你的第一个 Django 应用,Django内置数据库的配置,以及扩展性的数据库介绍和配置

天下古今之庸人,皆以一惰字致败;天下古今之人才,皆以一傲字致败。——[清]曾国藩 导言 大家好,在上一篇文章里,我们一起学习了Django的视图以及路由,并且对Django的应用有了初步的认识,掌握了…

vim编辑代码后退出编辑显示vim编辑的内容

在/etc/profile.d/下新建terminal.sh: 在terminal.sh里添加如下代码: #!/bin/bashexport TERMlinux 然后同步文件到内存: source /etc/profile

第二十九回 施恩三入死囚牢 武松大闹飞云浦-分布式版本控制系统Git使用

武松要蒋门神答应三件事:离开快活林、东西都归还施恩,公开对施恩赔礼道歉,不许在孟州住。蒋门神不得已都答应了,灰溜溜地离开了孟州城。 一个月之后,天气转凉,张都监调武松到孟州城,做了他的亲…