一.寄存器分类
ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14~R0、程序计数器PC(即R15)、一个状态寄存器都是可访问的。
ARM是不能直接读取RAM的值的,需要借助其寄存器
通用寄存器
通用寄存器包括R0~R15,可以分为3类:
(1)未分组寄存器R0~R7
---------未分组寄存器都指向同一个物理寄存器,切换模式后内容会被破坏
(2)分组寄存器R8~R14,不同状态下不同组
------------不同模式下会对应不同的物理寄存器,不同模式访问不同的物理寄存器。
(3)程序计数器PC(R15)
二.R13-R16
mode可为:usr,fiq,irq,svc,abt,und.
如图6中模式,sys和user共用,左下角有三角的表示所用寄存器和sys-user不同。
R13 SP 常常存放MSP指针
R14 LR (link register)执行BL时,保存PC指针的备份
R15 PC 当前程序的下两条程序(+8bytes)arm架构有 取指,译指,取值。PC在取值处
R16 CP