3、ARM寄存器组织

ARM寄存器组织

1、寄存器

概念

  • 寄存器是处理器内部的存储器,没有地址

作用

  • 一般用于暂时存放参与运算的数据和运算的结果

分类

  • 包括通用寄存器、专用寄存器、控制寄存器
    3、ARM寄存器组织_第1张图片

2、ARM寄存器

3、ARM寄存器组织_第2张图片
注:

  • 在某个特定的模式下,只能使用当前模式下的寄存器。一个模式下的特有寄存器在其他模式下不可以使用

专用寄存器

R15(PC,Program Counter)

  • 程序计数器,用于存储当前取址指令的地址

R14(LR,Link Register)

  • 链接寄存器,一般有一下两种用途
    • 1、执行跳转指令(BL和BLX)时,LR会自动保存跳转指令下一条指令的地址。程序需要返回时,将LR的值复制到PC即可实现。
    • 2、产生异常时,对应异常模式下的LR会自动保存被异常打断的指令的下一条指令的地址,异常处理结束后将LR的值复制到PC即可实现。

R13(SP,Stack Pointer)

  • 栈指针,用于存储当前模式下的栈顶指针

CPSR寄存器

CPSR(Current Program Status Register)

  • 当前程序状态寄存器
    3、ARM寄存器组织_第3张图片

CPSR寄存器分为四个域

  • 1、[31:28]为条件域,用F表示
  • 2、[24:27]为状态域,用S表示
  • 3、[15:8]为预留域 ,用X表示
  • 4、[8:0]为控制域 ,用C表示

Bit[4:0]

  • [10000]:User
  • [10001]:FIQ
  • [10010]:IRQ
  • [10011]:Supervisor (SVC)
  • [10111]:Abort(ABT)
  • [11011]:Undef(UND)
  • [11111]:System(SYS
  • [10110]:Monitor

Bit[5]

  • [0]:ARM状态
  • [1]:Thumb状态

Bit[6]

  • [0]:开启FIQ
  • [1]:禁止FIQ

Bit[7]

  • [0]:开启IRQ
  • [1]:禁止IRQ

Bit[28]:V

  • 1、当运算器中进行加法运算且产生符号位进位时,该位自动置1,否则为0
  • 2、当运算器中进行减法运算且产生符号位借位时,该位自动置0,否则为1

Bit[29]:C

  • 当运算器中进行加法运算且产生进位时,该位自动置1,否则为0
  • 当运算器中进行减法运算且产生借位时,该位自动置0,否则为1

Bit[30]:Z

  • 当运算器中产生了0的结果该位自动置1,否则为0

Bit[31]:N

  • 当运算器中产生了负数的结果,该位自动置1,否则为0

你可能感兴趣的:(ARM体系结构和接口编程,arm开发)