ARM有7种基本工作模式:
User:非特权模式,大部分任务执行在这种模式
FIQ:当一个高优先级(fast) 中断产生时将会进入这种模式
IRQ:当一个低优先级(normal) 中断产生时将会进入这种模式
Supervisor:当复位或软中断指令执行时将会进入这种模式
Abort:当存取异常时将会进入这种模式
Undef:当执行未定义指令时会进入这种模式
System:使用和User模式相同寄存器集的特权模式
R13:
也叫做SP(堆栈指针),通常用作于堆栈指针。
R14:
也叫做LR(链接寄存器),通常用作于保存子程序或中断返回的地址,通常是产生中断或者跳转指令的下一条指令的地址(由于ARM中PC总是当前正在执行的指令地址+8,所以保存到LR中的地址应该总是PC-4)。
R15:
也叫做PC(程序计数器),由于ARM采用流水线技术,所以PC总是指向正在取值的指令(ARM7为3级流水线,所以PC的值始终是当前正在执行的指令地址+8)。
CPSR:
程序状态寄存器(Current Program Status Register),CPSR在用户级编程时用于存储条件码;CPSR包含条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息。
SPSR:
程序状态保存寄存器(Current Program Status Register),SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。