ARM 指令的尋址方式
ADD R0,R0,#1;R0←R0+1
ADD R0,R0,#0x3f;R0←R0+0x3f
2、寄存器尋址操作數(shù)在寄存器
ADD R0,R1,R2;R0←R1+R2
3、寄存器間接尋址 操作數(shù)的地址在寄存器
ADD R0,R1,[R2];R0←R1+[R2]
LDR R0,[R1];R0←[R1]
STR R0,[R1];[R1]←R0
4、基址變址尋址操作數(shù)地址=基址寄存器+指令中給出的地址偏移
LDR R0,[R1,#4];R0←[R1+4]
LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4
LDR R0,[R1],#4;R0←[R1]、R1←R1+4
LDR R0,[R1,R2];R0←[R1+R2]
5、多寄存器尋址類似寄存器尋址,此處是多個寄存器而已
LDMIA R0,{R1,R2,R3,R4};R1←[R0]
;R2←[R0+4]
;R3←[R0+8]
;R4←[R0+12]
6、相對尋址目標地址= pc當前值+指令給出的標號偏移地址
BL NEXT;跳轉(zhuǎn)到子程序NEXT處執(zhí)行
......
NEXT
......
MOV PC,LR;從子程序返回
7、堆棧尋址
ARM微處理器支持這四種類型的堆棧工作方式。
-滿遞減堆棧:堆棧指針指向最后壓入的數(shù)據(jù),且由高地址向低地址生成。
-空遞增堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由低地址向高地址生成。
-空遞減堆棧:堆棧指針指向下一個將要放入數(shù)據(jù)的空位置,且由高地址向低地址生成。
評論