ARM彙編寄存器簡介

通常我們在看啓動代碼的時候會需要用到彙編,或者在出現問題反彙編可以查看問題的原因。這時候就需要對彙編指令和寄存器的用途有比較清楚的認識。下面就是對寄存器的簡單描述:

ARM 32位寄存器
ARM彙編器對ARM的寄存器進行了預定義,所有的寄存器和協處理器名都是大小寫敏感的.預定義的寄存器如下:

Ro-R15和r0-r15
a1-a4(參數,結果或者臨時寄存器,與r0-r3同意)
v1-v8(變量寄存器,與r4-r11同意)
sb和SB(靜態基址寄存器,與r9同意)
sl和SL(堆棧限制寄存器,與r10同意)
fp和FP(幀指針,與r11同意)
ip和IP(過程調用中間臨時寄存器,與r12同意)
sp和SP(堆棧指針,與r13同意)
lr和LR(連接寄存器,與r14同意)
pc和PC(程序計數器,與r15同意)
cpsr和CPSR(程序狀態寄存器)
spsr和SPSR(程序狀態寄存器)
f0-f7和F0-F7(FPA寄存器)
s0-s31和S0-S31(VFP單精度寄存器)
d0-d15和D0-D15(VFP雙精度寄存器)
p0-p15(協處理器0-15)
c0-c15(協處理器寄存器0-15)
使用說明:
1、當參數少於4個時,子程序間通過寄存器R0R3來傳遞參數;當參數個數多於4個時,將多餘的參數通過數據棧進行傳遞,入棧順序與參數順序正好相反,子程序返回前無需恢復R0R3的值;
2、在子程序中,使用R4~R11保存局部變量,若使用需要入棧保存,子程序返回前需要恢復這些寄存器;R12是臨時寄存器,使用不需要保存。
3、R13用作數據幀指針,記作SP;R14用作鏈接寄存器,記作LR,用於保存子程序返回時的地址;R15是程序計數器,記作PC。
4、ATPCS規定堆棧是滿遞減堆棧FD;
5、子程序返回32位的整數,使用R0返回;返回64位整數時,使用R0返回低位,R1返回高位。

在這裏插入圖片描述

參考文章鏈接:
https://www.cnblogs.com/SoaringLee/p/10532401.html
https://blog.csdn.net/qq_29350001/article/details/80586534

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章