美文网首页
iOS ARM64汇编02-- 寄存器

iOS ARM64汇编02-- 寄存器

作者: YanZi_33 | 来源:发表于2021-02-24 16:28 被阅读0次
  • 在ARM64汇编中有多种不同的寄存器,比较常用的寄存器如下:
通用寄存器
  • 64bit的:x0 ~ x28
  • 32bit的:w0 ~ w28(属于x0 ~ x28的低32bit)
  • 两者之间的关系如下所示:
Snip20210223_6.png
  • w0寄存器是属于x0寄存器的一部分,其占据了低32bit的位置;
  • x0 ~ x7 通常用来存放函数的参数,更多的参数使用堆栈来传递;
  • x0通常拿来存放函数的返回值;
程序状态寄存器
  • cpsr(Current Program Status Register) 当前程序状态寄存器;
  • spsr(Saved Program Status Register) 异常状态下使用的寄存器;
  • 通用寄存器是用来存储数据的,而CPSR寄存器是按位起作用的,也就是说它的每一位都有专门的含义,记录特定的信息,注意CPSR寄存器是32bit的;
  • CPSR寄存器各个位的含义如下图所示:
Snip20210225_83.png
  • 最高的4位称之为条件标志位;
    • N位:也称之为负数位,如果结果为负数,则N=1;如果结果为非负数,则N=0;
    • Z位:也称之为零位,如果结果为0,则Z=1;如果结果为非零,则Z=0。
    • C位:其设置分一下几种情况:
      对于加法指令(包含比较指令CMN),如果产生进位,则C=1;否则C=0。
      对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。
      对于有移位操作的非法指令,C为移位操作中最后移出位的值。
      对于其他指令,C通常不变。
    • V位:对于加减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0;对于其他指令,V通常不发生变化;
零寄存器(寄存器中存储的数据为0)
  • wzr:32bit;
  • xzr:64bit ;
程序计数器
  • pc (Program Counter):记录CPU当前指令是哪一条指令,存储着当前CPU正在执行的指令的地址;

链接寄存器

  • lr (Link Register) 也就是x30,其存储着函数的返回地址;
堆栈指针
  • sp (Stack Pointer);

  • fp (Frame Pointer) 也就是x29;

  • 常见的关于汇编的LLDB命令:

    • register read x0 读取x0寄存器中的值;
    • register read w0 读取w0寄存器中的值;
    • register write x0 0x1100000000000022 往x0寄存器中写入值;
    • register read 查看所有的寄存器;

相关文章

  • ARM64 学习

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

  • IOS arm64常用的汇编

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

  • 汇编

    iOS汇编 arm64,x86,armv7 生成汇编文件 寄存器 通用寄存器64bit:x0-x2832bit:w...

  • arm64汇编基础

    iOS汇编 真机:arm64汇编 模拟器:x86汇编 将c语言的代码转化成汇编: 1. 寄存器 lldb查看当前a...

  • iOS ARM64汇编02-- 寄存器

    在ARM64汇编中有多种不同的寄存器,比较常用的寄存器如下: 通用寄存器 64bit的:x0 ~ x28 32bi...

  • 认识ARM64汇编

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

  • 4. ARM寄存器

    1. 简书-ARM寄存器讲解2. ARM寄存器解析3. ARM64汇编-寄存器和指令4. 堆栈基础-windows...

  • 入门二

    [转]ARM64 汇编 寄存器 汇编指令栈栗子 逆向工程绕不过的一部分就是汇编指令的分析。我们iPhone里面用到...

  • ARM64汇编入门 - 汇编基础

    ARM64汇编入门 - 汇编基础ARM64汇编入门 - 汇编基础

  • ARM64汇编

    不同架构的汇编代码是不同的,这里研究的是真机ARM64架构的汇编 通用寄存器 可以通过$register read...

网友评论

      本文标题:iOS ARM64汇编02-- 寄存器

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