寄存器R0-R15别名
1.1基本名与别名
ARM寄存器
寄存器名字 | ||
---|---|---|
Reg# | APCS | 意义 |
R0 | a1 | 工作寄存器 |
R1 | a2 | " |
R2 | a3 | " |
R3 | a4 | " |
R4 | v1 | 必须保护 |
R5 | v2 | " |
R6 | v3 | " |
R7 | v4 | " |
R8 | v5 | " |
R9 | v6 | " |
R10 | sl | 栈限制 |
R11 | fp | 桢指针 |
R12 | ip | 内部过程调用寄存器 |
R13 | sp | 栈指针 |
R14 | lr | 连接寄存器 |
R15 | pc | 程序计数器 |
1.2例题
1.1
寄存器R15除了可以做通用寄存器外,还可以做()
A. 程序计数器
B. 链接寄存器
C. 堆栈指针寄存器
D. 基址寄存器
答案A
1.2
寄存器R13除了可以做通用寄存器外,还可以做()。
A. 程序计数器
B. 链接寄存器
C. 栈指针寄存器
D. 基址寄存器
答案C
1.3ARM寄存器的别名
寄存器名字 Reg# APCS 意义
R0 a1 工作寄存器
R1 a2 " R2 a3 " R3 a4 " R4 v1 必须保护
R5 v2 " R6 v3 " R7 v4 " R8 v5 " R9 v6 " R10 sl 栈限制
R11 fp 桢指针 R12 ip 内部过程调用寄存器
R13 sp 栈指针 R14 lr 连接寄存器
R15 pc 程序计数器
the following register names are predeclared:
1. *r0-r15* and *R0-R15*
2. *a1-a4* (argument, result, or scratch registers, synonyms for r0 to r3)
3. *v1-v8* (variable registers, r4 to r11)
4. *sb* and *SB* (static base, r9)
5. *ip* and *IP* (intra-procedure-call scratch register, r12)
6. *sp* and *SP* (stack pointer, r13)
7. *lr* and *LR* (link register, r14)
8. *pc* and *PC* (program counter, r15).