大学的时候学习过一段时间汇编,现在出来工作发现还需要捡起这些东西重新去学习,接下这一段时间先集中整理ARM的基础知识,然后扩展到ARMv8学习64位框架,然后学习MMU,学习它的中断处理方式;这篇文章以基础为主学习ARM寄存器;
寄存器分类
ARM也可以理解成一个芯片,它也有自己的寄存器,实现与memory之间的数据传递; ARM处理器共有37个寄存器,其中包括:
i. 31个通用寄存器,包括程序计数器(PC)在内。都是32位寄存器
ii. 6个状态寄存器,都是32位寄存器;
下面位arm 的6中模式所对应的寄存器:
ARM处理器有7种不同的处理器模式,在每一种处理器模式中有一组相应的寄存器组。在所有的寄存器中,有些是各模式共用的同一个物理寄存器,有些是各模式自己拥有的独立的物理寄存器。
简单介绍下ARM处理器模式:
用户模式(User): ARM处理器正常的程序执行状态;
快速中断模式(FIQ): 用于高速数据传输或通道处理;
外部中断模式(IRQ): 用于通用的中断处理;
管理模式(Supervisor): 操作系统使用的保护模式;
数据访问终止模式(Abort): 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护;
系统模式(System): 运行具有特权的操作系统任务;
未定义指令中止模式(Undifined):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真;
通用寄存器可以分为3类:未备份寄存器(R0~R7)、备份寄存器(R8~R14)和程序计数器PC(R15)。对于每一个未备份寄存器来说,在所有的处理器模式下指的都是同一个物理寄存器。应备份寄存器R8~R12来说,每个寄存器对应两个不同的物理寄存器(中断模式和非