一、指令
- 指令的生成过程
- 指令执行过程示例
if (a == 0) {
x = 0;
} else {
x = x + 3;
}
//翻译为
cmp r0,#0
MOVEQ R1,#0
ADDGT R1,R1,#3
指令获取:从Flash中读取 CMP R0, #0,控制器开始执行。
指令解码:解码器解析 CMP 指令,ALU比较R0的值和0。
条件执行:
若条件满足 EQ,执行 MOVEQ,将0放入R1。
若条件满足 GT,执行 ADDGT,将R1加3。
结果存储:将计算结果保存在R1中。
二、ARM的工作模式
- 用户模式(USR模式)
权限:最低
资源:最少
用途:用于执行普通任务,例如应用程序。大部分程序都运行在用户模式下。 - 管理员模式(SVC模式)
权限:高
资源:多
用途:用于执行核心级任务,例如操作系统的核心代码。 - 中断模式(IRQ模式)
权限:高
资源:多
用途:用于执行中断代码,处理普通中断请求。 - 快速中断模式(FIQ模式)
权限: