ARM处理器的工作模式
非特权模式
- User : 非特权模式(也叫用户模式),大部分任务执行都在这种模式。用户模式
特权模式 - FIQ : 当一个高优先级(fast)中断产生时将会进入这种模式。 快速中断
- IRQ : 当一个低优先级(normal)中断产生时将会进入这种模式。 普通中断
- Supervisor(SVC) : 当复位或软中断指令执行时将会进入这种模式。 管理者模式
- Abort : 当存取异常时将会进入这种模式。
- Undef : 当执行未定义指令时会进入这种模式。
- System : 使用和User模式相同寄存器集的特权模式 系统模式
ARM的37个寄存器
1、ARM总共有37个寄存器,但是每种模式下最多只能看到18个寄存器,其他寄存器虽然名字相同但是在当前模式不可见。
2、对r13这个名字来说,在ARM中共有6个名叫r13(又叫sp)的寄存器,但是在每种特定处理器模式下,只有一个r13是当前可见的,其他的r13必须切换到他的对应模式下才能看到。这种设计叫影子寄存器(banked register)。


- N = ALU运算时得到一个负结果
- Z(1) = ALU运算时得到一个零结果
- K = 表示进位标志位有进位了
- V = 表示进位标志位已经溢出了

异常处理方式
除正常工作之外的流程都叫异常。
异常会打断正在执行的工作或任务,当异常处理完之后,继续之前的工作。
中断是异常的一种。

SPSR里边保存的是数据。
LR里边保存的是地址。
多寄存器寻址 : idmia r1!,{r2-r7,r12}
r1就类似与数组,依次给大括号里的寄存器里边
条件执行后缀
如moveq r1,r2 指令满足 Z = 1时执行。
版权声明:本文为heyunpign原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。