ARM-寄存器-内存

ARM处理器
1.ARM指令集的分类
大部分的ARM处理器支持ARM指令集和THUMB指令集
ARM指令集:32bits(64bits),每条指令站用32位的存储空间
THUNM指令集:16bits,每条指令占用16位的存储空间

ARM处理器有两种状态,ARM状态执行ARM指令集,THUMB状态执行THUMB指令集。

2.ARM处理器的工作模式
经典的ARM处理器有7种工作模式,A系列有8种

User:用户模式,一般情况下执行应用程序处于该模式
System:系统模式,有特权的用户模式

IRQ:中断模式,用于处理中断
FIQ:快速中断模式,用于处理快中断
SVC:管理模式,系统复位/软中断处于该模式
Undef:未定义模式,当遇到未定义指令进入该模式
Abort:中止模式,当 指令/数据 存取异常进入该模式

Monitor(A系列独有):监控模式,为安全扩展执行安全代码的模式

模式分类:
除User以外的模式都是特权模式
IRQ,FIQ,Undef,Abort,SVC属于异常模式

3.ARM的寄存器组织
ARM的寄存器是处理器留给用户的接口
处于 CPU内部,没有地址,只有名字(编号)
寄存器中的数据可以在指令中直接使用
每个模式下使用的寄存器有区别
ARM-寄存器-内存

经典的ARM处理器一共有37个32位寄存器,A系列有40个32位的处理器
ARM-寄存器-内存

分类:
R0-R7:未分组的通用寄存器,所有的模式下共用同一组
R8-R12:分组的通用寄存器,快中断模式下有单独的一组
R13:通用寄存器,通常用作堆栈指针(SP)
ARM-寄存器-内存
R14(LR):链接寄存器,用于保存程序返回的地址
R15(PC):程序计数器,指向当前取指指令
ARM-寄存器-内存