一.处理器模式(不同架构可能会有所不同,比如cotex A系列的多了几种模式)
| 模式 |
描述 |
|
| Supervisor (SVC) |
当复位或者软中断(SWI)指令被执行时进入 |
特权模式 |
| FIQ |
一个高优先级的快速中断产生时进入 |
|
| IRQ |
一个低优先级的普通中断产生时进入 |
|
| Abort |
用来处理内存访问异常 |
|
| Undef |
用来处理未定义的指令 |
|
| System |
特权模式,与用户模式使用相同寄存器 |
|
| User |
大多数应用程序/操作系统任务执行时的模式 |
非特权模式 |
上面的图显示了arm的7种工作模式,其又分为特权模式和非特权模式,其中操作系统就是工作在特权模式的。每种不同的工作模式对应了不同的寄存器,下面我们开始介绍每种工作模式对应的是那些寄存器。
二.寄存器(每个寄存器32位)
| 用户模式 |
系统模式 |
特权模式 |
中止模式 |
未定义指令模式 |
外部中断模式 |
快速中断模式 |
| R0 |
R0 |
R0 |
R0 |
R0 |
R0 |
R0 |
| R1 |
R1 |
R1 |
R1 |
R1 |
R1 |
R1 |
| R2 |
R2 |
R2 |
R2 |
R2 |
R2 |
R2 |
| R3 |
R3 |
R3 |
R3 |
R3 |
R3 |
R3 |
| R4 |
R4 |
R4 |
R4 |
R4 |
R4 |
R4 |
| R5 |
R5 |
R5 |
R5 |
R5 |
R5 |
R5 |
| R6 |
R6 |
R6 |
R6 |
R6 |
R6 |
R6 |
| R8 |
R8 |
R8 |
R8 |
R8 |
R8 |
R8_fiq |
| R9 |
R9 |
R9 |
R9 |
R9 |
R9 |
R9_fiq |
| R10 |
R10 |
R10 |
R10 |
R10 |
R10 |
R10_fiq |
| R11 |
R11 |
R11 |
R11 |
R11 |
R11 |
R11_fiq |
| R12 |
R12 |
R12 |
R12 |
R12 |
R12 |
R12_fiq |
| R13 |
R13 |
R13_svc |
R13_abt |
R13_und |
R13_inq |
R13_fiq |
本文深入探讨了ARM处理器的7种工作模式及其寄存器配置,包括特权与非特权模式。详细介绍了CPSR寄存器、汇编指令格式、立即数、寻址方式以及算数逻辑指令。此外,还涵盖了内存操作、跳转指令、状态寄存器操作、异常处理和汇编与C/C++的混合编程实践。
最低0.47元/天 解锁文章
4457

被折叠的 条评论
为什么被折叠?



