美文网首页
汇编三、寄存器

汇编三、寄存器

作者: fanren | 来源:发表于2018-04-21 17:03 被阅读0次

通用寄存器

  • ARM64拥有31个64位的通用寄存器(x0到x30),这些寄存器通常用来存放一般性的数据,称为通用寄存器(有时也有特定用途)
    • w0到w28是32位的通用寄存器,是64位寄存器的低32位
    • w0就是x0的低32位,如果w0改变了,x0也会改变;
  • 通过xcode查看寄存器


  • 通常,CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算

假设内存中有块红色内存空间的值是3,现在想把它的值加1,并将结果存储到蓝色内存空间



1.CPU首先会将红色内存空间的值放到X0寄存器中:mov X0,红色内存空间
2.然后让X0寄存器与1相加:add X0,1
3.最后将值赋值给内存空间:mov 蓝色内存空间,X0

pc寄存器(program counter)

  • 为指令指针寄存器,它指示了CPU当前要读取指令的地址;

在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息

  • CPU在工作的时候把有的信息看做指令,有的信息看做数据,为同样的信息赋予了不同的意义;
    • 比如 1110 0000 0000 0011 0000 1000 1010 1010
    • 可以当做数据 0xE003008AA
    • 也可以当做指令 mov x0, x8
  • CPU根据什么将内存中的信息看做指令?
    • CPU将pc指向的内存单元的内容看做指令
    • 如果内存中的某段内容曾被CPU执行过,那么它所在的内存单元必然被pc指向过;

数据地址寄存器

数据地址寄存器通常用来做数据计算的临时存储、做累加、计数、地址保存等功能。定义这些寄存器的作用主要是用于在CPU指令中保存操作数,在CPU中当做一些常规变量来使用。

ARM64中

  • 64位: X0-X30, XZR(零寄存器)
  • 32位: W0-W30, WZR(零寄存器)

注意:
之前讲解8086汇编中有一种特殊的寄存器段寄存器:CS,DS,SS,ES四个寄存器来保存这些段的基地址,这个属于Intel架构CPU中.在ARM中并没有

浮点寄存器

因为浮点数的存储以及其运算的特殊性,CPU中专门提供浮点数寄存器来处理浮点数

  • 浮点寄存器 64位: D0 - D31 32位: S0 - S31

向量寄存器

现在的CPU支持向量运算.(向量运算在图形处理相关的领域用得非常的多)为了支持向量计算系统了也提供了众多的向量寄存器.

  • 向量寄存器 128位:V0-V31

相关文章

  • 有关汇编相关参考博客

    汇编之常识(一)汇编基础 CPU等硬件结构 数据总线 地址总线 控制总线 汇编之寄存器(二)寄存器 数据地址寄存器...

  • IOS arm64常用的汇编

    导论 生成汇编文件 寄存器 arm64 汇编条件域 arm64 汇编指令 总结 1. 生成汇编文件 2. 寄存器 ...

  • (二) LLDB理解汇编

    1. 汇编寄存器调用约定 1.1 汇编101 看看下面的汇编片段: 在这段汇编代码中有三个操作码pushq、sub...

  • ARM64 学习

    iOS汇编 真机 arm64汇编,GNU 模拟器 x86, AT&T 汇编 寄存器 指令 堆栈 通用寄存器 64b...

  • Windows汇编(2)Win64汇编

    Win64汇编 - 寄存器

  • 00-汇编语言

    程序的本质 寄存器与内存 编程语言的发展 汇编语言的种类 常见的汇编指令 寄存器 有16个常用寄存器rax、rbx...

  • 1.汇编-寄存器

    1.汇编-寄存器 寄存器介绍 寄存器是什么 计算机在三个地方可以存数据 cpu 内存 硬盘 所谓寄存器,就是cpu...

  • 认识ARM64汇编

    [TOC] 之前说过学习汇编就是学习寄存器和指令,查看代码请连接真机。 寄存器 在arm64汇编中寄存器是64bi...

  • 汇编基础

    汇编指令速查 汇编中各寄存器的作用4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和E...

  • 汇编三、寄存器

    通用寄存器 ARM64拥有31个64位的通用寄存器(x0到x30),这些寄存器通常用来存放一般性的数据,称为通用寄...

网友评论

      本文标题:汇编三、寄存器

      本文链接:https://www.haomeiwen.com/subject/gvnxlftx.html