ARM,CPSR是16个寄存器中的哪个?

问题描述

我现在有点困惑,下表显示了据我所知程序员可以使用的ARM寄存器:

| Register Name    | Register Number | Usage                |
| ---------------- | --------------- | -------------------- |
| r0 - r10         | 0 - 10          | General Purpose      |
| r11 or fp        | 11              | Frame Pointer        |
| r12 or ip        | 12              | Intraprocess scratch |
| r13 or sp        | 13              | Stack Pointer        |
| r14 or lr        | 14              | Link Register        |
| r15 or pc        | 15              | Program Counter      |

但是也有cpsR,例如TST指令。 所以我的问题是,cpsR是16个寄存器中的哪个?

解决方法

没有一个。这不是 all 机器寄存器的完整列表,仅是通用寄存器r0-r14)和程序计数器的完整列表。机器上还有许多非通用寄存器,CPSR就是其中之一。确实,在我的《 armv8体系结构参考手册》的副本中,CPSR被明确称为“专用”寄存器。