默認的狀況下,這些寄存器只是叫作r0,r1,...,r14等,而APCS 對其起了不一樣的別名。android
使用匯編器預處理器的功能,你能夠定義 R0 等名字,但在你修改其餘人寫的代碼的時候,最好仍是學習使用 APCS 名字。編程
通常編程過程當中,最好按照其約定,使用對應的名字,這樣使得程序可讀性更好。學習
關於不一樣寄存器所對應的名字,見下表:spa
Table 3.2. ARM寄存器的別名.net
寄存器名字 | ||
---|---|---|
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:指針
- r0-r15 and R0-R15
- a1-a4 (argument, result, or scratch registers, synonyms for r0 to r3)
- v1-v8 (variable registers, r4 to r11)
- sb and SB (static base, r9)
- ip and IP (intra-procedure-call scratch register, r12)
- sp and SP (stack pointer, r13)
- lr and LR (link register, r14)
- pc and PC (program counter, r15).
android ARM RISC relocsblog
#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */
http://blog.csdn.net/lifeshow/article/details/29597401ip
http://blog.csdn.net/dinuliang/article/details/5509009v8
SDRAMget