arm9有多少个寄存器

ARM920T有31个通用的32位寄存器和6个程序状态寄存器,这37个寄存器分为7组,进入某个工作模式时就使用它的那组寄存器。有些寄存器,不同的工作模式下有自己的副本,当切换到另一个工作模式时,那个工作模式的寄存器副本将被使用:这些寄存器被称为备份寄存器。从下图中可以看出fiq模式的备份寄存器最多,这是为了提高fiq的响应速度,减少保存寄存器值所花费的时间。
arm9有多少个寄存器_第1张图片

寄存器R13在ARM指令中常用作堆栈指针SP,R14称为子程序链接寄存器LR(Link Register),R15 程序计数器PC,寄存器R16用作CPSR(CurrentProgram Status Register,当前程序状态寄存器),其他通用。

每一种运行模式下又都有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register,备份的程序状态寄存器),当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。

由于用户模式和系统模式不属于异常模式,它们没有SPSR,当在这两种模式下访问SPSR,结果是未知的

你可能感兴趣的:(Linux,嵌入式,单片机)