ARM的七种模式与37个寄存器 笔记

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)。

在这里插入图片描述
转自朱老师的ppt

  • 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版权协议,转载请附上原文出处链接和本声明。