工作状态
不同工作状态可以随时切换,处理器工作状态切换不行影响处理器工作模式和相应寄存器的内容
ARM状态
处理器执行32位的字对齐的ARM指令
Thumb状态
处理器执行16位半字对齐的Thumb指令
存储器格式
从0地址开始,32位,最多4GB 字对齐
大端格式
高字节在低地址
小端格式
低字节在低地址
工作模式
用户模式(Usr)
除用户模式外其他模式称为非用户模式 或特权模式(Privileged Modes)
系统模式(sys)
除 用户模式 和系统模式外 其他模式 称为 异常模式(Exception Modes)
快速中断模式(FIQ)
外部中断模式(IRQ)
管理模式(svc)
数据访问终止模式(abt)
未定义指令中止模式
ARM状态寄存器
37个32位寄存器
任何时刻可以访问16个通用寄存器 一到两个状态寄存器
在任何事后 通用寄存器R0~R14 程序寄存器PC(R15) 一个状态寄存器是可访问的
31个通用寄存器
不分组寄存器 R0 ~ R7 任何模式都用同一套
分组寄存器
R8~R12
FIQ模式用一套
FIQ以外的模式用一套
R13 堆栈指针SP
R14子程序连接寄存器(Link Register -LR) 指向 函数返回地址
每个模式用不同套(User System 用同一套)
R15 PC
程序寄存器
6个状态寄存器
格式
位数 | 31 | 30 | 29 | 28 | 27:8 | 7 | 6 | 5 | 4:0 |
---|---|---|---|---|---|---|---|---|---|
名称 | N | Z | C | V | (前为条件码标志位) 保留位 (后为控制位) | I | F | T | M4:M0 |
功能 | Negative | Zero | Carrry | Overflow | 保留位 | IRQ中断禁止位 | FIQ中断禁止位 (1: ) | 工作状态位(ARM/Thumb) | M4:M0 |
CPSR
记录当前状态
包含条件码标识 中断禁止位 当前处理器模式 其他状态 控制信息
SPSR 5个异常模式才有,各用一个
当进入异常模式,用于保存原来CPSR寄存器的内容
Thumb状态寄存器
比ARM状态少了R8~R12寄存器