arm通用寄存器常见问题(ARM的7种工作模式下37个通用寄存器作用情况)(1)

ARM的7种工作模式下37个通用寄存器作用情况

一、除了用户模式与系统模式外,其他5种模式属于异常模式:

1.1 user普通模式(normal),大部分任务执行都在这模式下;

1.2 FIQ当一个高优先级(fast)中断时将会进入这种模式;

1.3 IRQ当一个低优先级(normal)中断时将会进入这种模式;

1.4 SVC当复位或软中断指令执行时将会进入这种模式;

1.5 ABORT当存取异常时将会进入这种模式;

1.6 UNDEF当执行未定义的指令会进入这种模式;

二、通用寄存器中的特殊寄存器详解:

2.1 sp-堆栈指针寄存器,用来存放各种模式下指针地址,当不使用堆栈时, 也可以用作通用数据寄存器;;

2.2 lr-连接寄存器,用来存放返回之前模式的地址或者子程序的返回地址;

2.3 pc-程序计数器,用来读取指令;

2.4 cpsr-程序状态寄存器,用来保存当前模式下程序的一些状态;

2.5 spsr用保存cpsr。

三、关于cpsr寄存器各位的详解:

arm通用寄存器常见问题(ARM的7种工作模式下37个通用寄存器作用情况)(2)

N结果为负 Z结果为零 C有进位 V溢出

特别声明:图片及文字源于学习整理,部分资料源于网络侵权联系删除。

,