PC 是指令指針 R15
LR是用于保存函數(shù)調(diào)用的返回地址 R14
SP是堆棧指針 R13
LDR 將內(nèi)存中的數(shù)載入到寄存器
STR 將寄存器中的數(shù)保存到內(nèi)存
無條件跳轉(zhuǎn):L
函數(shù)調(diào)用: BL (保存PC到LR再跳轉(zhuǎn))
前四個參數(shù)保存到R0~R3型豁,其他使用棧傳遞
返回值:
1.結(jié)果為一個32位的整數(shù)時,可以通過寄存器R0返回.
2.結(jié)果為一個64位整數(shù)時,可以通過R0和R1返回,依此類推.
3.結(jié)果為一個浮點數(shù)時,可以通過浮點運算部件的寄存器f0,d0或者s0來返回.
4.結(jié)果為一個復(fù)合的浮點數(shù)時,可以通過寄存器f0-fN或者d0~dN來返回.
5.對于位數(shù)更多的結(jié)果,需要通過調(diào)用內(nèi)存來傳遞.
BX
BXL
X代表切換指令集
立即數(shù)前面加#
push pop
ARM 流水線介紹
ARM7
取指令输吏,譯碼,執(zhí)行
1例隆、位指令
AND指令進行邏輯"與"操作;
ORR指令進行邏輯"或"操作;
EOR指令進行邏輯"異或"操作;==》F = ^AB + A^B
ORN指令進行邏輯"或非"操作烫映;==》F = ^(A+B)
BIC指令進行"RN AND NOT RM"操作
2、批量存儲讀取指令
LDM:(load much)多數(shù)據(jù)加載,將地址上的值加載到寄存器上
STM:(store much)多數(shù)據(jù)存儲,將寄存器的值存到地址上
主要用途:現(xiàn)場保護噩峦、數(shù)據(jù)復(fù)制锭沟、參數(shù)傳送等,共有8種模式(前面4種用于數(shù)據(jù)塊的傳輸识补,后面4種是堆棧操作)如下:
IA:每次傳送后地址加4,其中的寄存器從左到右執(zhí)行,例如:STMIA R0,{R1,LR} 先存R1,再存LR
IB:每次傳送前地址加4,同上
DA:每次傳送后地址減4,其中的寄存器從右到左執(zhí)行,例如:STMDA R0,{R1,LR} 先存LR,再存R1
DB:每次傳送前地址減4,同上
FD:滿遞減堆棧 (每次傳送前地址減4)
FA:滿遞增堆棧 (每次傳送后地址減4)
ED:空遞減堆棧 (每次傳送前地址加4)
EA:空遞增堆棧 (每次傳送后地址加4)
注意:其中在數(shù)據(jù)塊的傳輸中是STMMDB和LDMIA對應(yīng)族淮,STMMIA和LDMDB對應(yīng),而在堆棧操作是STMFD和LDMFD對應(yīng)凭涂,STMFA和LDMFA對應(yīng)