美文网首页
4. ARM寄存器

4. ARM寄存器

作者: 郑行_aover | 来源:发表于2019-03-20 11:51 被阅读0次

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

1. 关于寄存器的说明

  • R0-R3:用作传入函数参数,传出函数的返回值。在子程序调用之前,可以将r0-r3用于任何用途,被调用函数在返回之前不必恢复r0-r3.如果调用函数需要再次使用这几个寄存器的内容,则必须保留这些内容。
  • R4-R11:被用来存放函数的局部变量。如果被调用函数使用了这些寄存器,在返回之前必须恢复这些寄存器的值
  • R12: 是内部调用暂时寄存器ip。它在过程链接胶合代码中用于此角色。可以将其用于任何用途。被调用函数在返回之前不必恢复r12.
  • R13: 是栈指针SP,指向栈顶。.它不能用于任何其它用途。sp中存放的值在退出被调用函数时必须与进入时值相同。
  • R14: 是链接寄存器LR。如果保存了返回地址,则可以在调用之间将r14用于其它用途,程序返回时要恢复。
  • R15: 是程序计数器PC。用于执行可执行文件中的指令地址。

2. PC寄存器

  • 为指令指针寄存器,它指示了CPU当前要读取指令的地址
  • 在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息
  • CPU工作时候把有的信息看做指令,有的信息看做数据,为同样的信息赋予不同的意义
    • 比如 比如 1110 0000 0000 0011 0000 1000 1010 1010
    • 可以当做数据 0xE003008AA,也可以当做指令 mov x0, x8
  • CPU根据什么将内存中的信息看做指令
    • CPU将PC指向的内容看做指令
    • 如果内存中某段内容被CPU执行过,那么它所在的内存单元必然被PC指向过。

3. SP、fp、LR寄存器

  • sp寄存器时刻保存我们的栈顶的地址
  • fp寄存器,会保存我们的栈底的地址
  • LR 程序链接寄存器:1. 用于保存函数的返回地址。 2. 异常处理后的返回地址,例如中断。

4. CPSR、SPSR

  • CPSR当前状态寄存器,其中每一位的bit都有意义。用于指示正负、加减、中断等的状态
  • SPSR 系统状态寄存器,用于异常保护的CPSR的备份,异常时保存CPSR的值。异常退出时将该值恢复到CPSR,以保障程序正常运行。

5. 关于堆栈寄存器

  • rsp、esp、sp:栈指针寄存器,内存放着一个指针,永远指向系统栈的栈顶。(sp16位| esp32位|rsp64位)
  • rbp、ebp、bp:基址指针寄存器,该指针永远指向系统栈上栈帧的底部。
  • rip、eip、ip: 指令寄存器,该指针永远指向下一条待执行的指令地址。
  • ss:寄存器存放的段地址。
    说明: PC和ip其实是一回事儿。都是指令寄存器,指向当前执行指令的下一条指令。

相关文章

  • 4. ARM寄存器

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

  • ARM汇编

    一. ARM 寄存器 ARM共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器.这些寄存器不能被同时...

  • iOS逆向001--初识汇编<三>指令和寄存器

    一:ARM寄存器 ARM指令主要是对寄存器,栈、内存的操作。寄存器位于CPU中,个数少速度快,ARM指令集中大部分...

  • 11.ARM的37个寄存器详解

    ARM寄存器 ARM共有37个寄存器,都是32位长度 37个寄存器中30个为“通用”型,1个固定用作PC,一个固定...

  • Android ARM逆向

    ARM 汇编的一些知识 寄存器数量不同模式下访问的寄存器寄存器用途条件执行后缀ARM 的指令流水线IDA 中的一些...

  • IOS arm64常用的汇编

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

  • 逆向笔记(二)-状态寄存器

    状态寄存器CPSR 在CPU内部的寄存器中有一种特殊的寄存器,这种寄存器在ARM中被称为状态寄存器,即CPSR寄存...

  • 汇编六、状态寄存器

    CPU内部的寄存器中,有一种特殊的寄存器,这种寄存器在ARM中,被称为状态寄存器,即CPSR(current pr...

  • u-boot启动流程分析之start.s,第一阶段

    文件:u-boot-1.1.6\cpu\arm920t\start.S reset部分代码详解 关于arm寄存器的...

  • ARM 寄存器

    ARM 寄存器 内部部件之间由总线连接,寄存器的作用就是进行数据的临时存储。 对程序员来说,CPU中最主要部件是寄...

网友评论

      本文标题:4. ARM寄存器

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