内存寄存器:
ARM920T 总共有 37 个寄存器(31 个通用寄存器 和 6 个状态寄存器);
常见寄存器的命名:
寄存器 | 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 | 程序计数器 |
注:
APCS = ARM Procedure Call Standard,即:ARM 过程调用标准;
上面的命名不是由标准的 Acorn 的 objasm(版本 2.00)所定义的,而是 objasm 的后来版本和其他汇编器(比如 Nick Robert 的 ASM)定义了它们。要定义一个寄存器名字,你要在程序最开始的地方使用 RN 宏指令(directive),例如:
a1 RN 0
a2 RN 1
a3 RN 2
… … …
r13 RN 13
sp RN 13
r14 RN 14
lr RN r14
pc RN 15