【CSAPP】x86-64的中央处理单元16个存储64位值的通用目的寄存器

简介: 【CSAPP】x86-64的中央处理单元16个存储64位值的通用目的寄存器

【问题描述】

x86-64的中央处理单元16个存储64位值的通用目的寄存器

【题目解析】

  • 一个x86-64位的中央处理单元(CPU)包含一组16个存储64位值得通用目的存储器,这些寄存器用来存储整数数据和指针。
  • 它们得名字都已%r开头,不过后面还跟着一些不同得命名规则的名字,这是由于指令集历史演化造成的。
  • 最初的8086中有8个16位的寄存器,即从%ax到%sp。
  • 每个寄存器都有特殊的用途,它们的名字就反映了这些不同的用途。
  • 扩展到IA32架构,这些寄存器也扩展成32位寄存器,标号从%eax到%esp。
  • 扩展到x86-64后,原来的8个寄存器扩展成64位,标号从%rax到%rsp。
  • 除此之外,还增加了8个新的寄存器,它们的标号是按照新的命名规则制定的:从%r8到%r15。


目录
相关文章
|
3月前
|
存储
ARM 堆栈寻址类型区分
该文介绍了堆栈的两种指向分类:向上生成型(递增堆栈)和向下生成型(递减堆栈),以及堆栈的两种数据状态:满堆栈(指针指向最后数据)和空堆栈(指针指向存放数据的位置)。满递增和满递减是在完整数据单元上操作,而空递增和空递减则允许自定义步长。文中通过图示说明了不同情况下的堆栈存储方式。
学C的第五天(初识指针,内存产生内存单元地址过程,指针函数介绍和其大小;结构体补充)-1
13*指针: 13.1 -- 内存: 内存是电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。 【32位操作系统的内存由32根地址线产生的高低电位(1/0), 划分为2的32次方个地址(编号\指针),一个地址为一个字节, 等于8比特。】
|
Linux
Linux驱动操作地址(寄存器)的一些方式
Linux驱动操作地址(寄存器)的一些方式
138 0
|
存储 算法 异构计算
m基于FPGA的数据串并并串转换系统verilog实现,包含testbench,可以配置并行数量
m基于FPGA的数据串并并串转换系统verilog实现,包含testbench,可以配置并行数量
337 0
|
存储
【计算机系统结构】堆栈、累加、通用寄存器型机器对比
【计算机系统结构】堆栈、累加、通用寄存器型机器对比
434 0
|
C语言 芯片
复习单片机:中断系统(内含1.中断概念+2 中断结构及相关寄存器)(注:相关寄存器是重点)
复习单片机:中断系统(内含1.中断概念+2 中断结构及相关寄存器)(注:相关寄存器是重点)
233 0
复习单片机:中断系统(内含1.中断概念+2 中断结构及相关寄存器)(注:相关寄存器是重点)
|
存储 网络协议 C语言
【CSAPP】x86-64的机器代码和原始的C代码差别巨大,一些常在C语言中隐藏的处理器状态
【CSAPP】x86-64的机器代码和原始的C代码差别巨大,一些常在C语言中隐藏的处理器状态
64 0
|
存储 安全 前端开发
【精通内核】计算机内存地址原理深度解析
内存在程序、Linux已经计算机中占有重要地位,本文深度解析计算机内存地址的原理,通过编译时的内存原理,深入浅出逐步讲解物理地址、虚拟内存、分段分页原理、线性地址,以及intel 对内存操作和原理解析。
驱动开发:内核LDE64引擎计算汇编长度
本章开始`LyShark`将介绍如何在内核中实现`InlineHook`挂钩这门技术,内核挂钩的第一步需要实现一个动态计算汇编指令长度的功能,该功能可以使用`LDE64`这个反汇编引擎,该引擎小巧简单可以直接在驱动中使用,LDE引擎是`BeaEngine`引擎的一部分,后来让`BeatriX`打包成了一个`ShellCode`代码,并可以通过`typedef`动态指针的方式直接调用功能,本章内容作为后期`Hook`挂钩的铺垫部分,独立出来也是因为代码太多太占空间一篇文章写下来或很长影响阅读。
220 0
驱动开发:内核LDE64引擎计算汇编长度