EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1、立即寻址操作数在指令中直接给出ADD R0,R0,#1;R0←R0+1
9 K# Y" `& _, b1 I1 gADD R0,R0,#0x3f;R0←R0+0x3f
- f. [+ E" I. J" l2、寄存器寻址操作数在寄存器 ADD R0,R1,R2;R0←R1+R2 3、寄存器间接寻址 操作数的地址在寄存器 ADD R0,R1,[R2];R0←R1+[R2]9 N- B1 S/ @7 [1 r. J9 R% t' `& F
LDR R0,[R1];R0←[R1]
6 L8 b! ~ O! s, u0 BSTR R0,[R1];[R1]←R0 4 @" h! L# R# B( F3 ~
4、基址变址寻址操作数地址=基址寄存器+指令中给出的地址偏移 LDR R0,[R1,#4];R0←[R1+4]
# A# G: y1 R$ T7 [: Y- K% C/ yLDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4) h; Q# R% h! z" P+ m' F! |' y
LDR R0,[R1],#4;R0←[R1]、R1←R1+4- c6 s0 _% F9 e+ T5 ]1 t: x
LDR R0,[R1,R2];R0←[R1+R2]
/ G N* u% @! S$ M5、多寄存器寻址类似寄存器寻址,此处是多个寄存器而已 LDMIA R0,{R1,R2,R3,R4};R1←[R0]
+ |! b1 X$ y+ Y& ~;R2←[R0+4]
/ W+ o8 p; t) ^5 \0 U# {;R3←[R0+8]
6 \% {8 x3 \! k q4 a3 ^8 [' @;R4←[R0+12] , T y6 ^7 S9 C
6、相对寻址目标地址= pc当前值+指令给出的标号偏移地址 BL NEXT;跳转到子程序NEXT处执行
) l0 k$ w7 n5 X: v8 u......5 k& Y2 ~. I2 e; e
NEXT% v) X3 Q7 X7 J. I8 L
......
, L0 N: e$ H5 \3 DMOV PC,LR;从子程序返回 % |4 W5 n( a$ u6 W
7、堆栈寻址+ v' m7 K. J1 D5 E
ARM微处理器支持这四种类型的堆栈工作方式。 -满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。
3 v# P% Q6 _1 r. L6 y+ q-满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。; W E' A) `& R9 v
-空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。
# x0 O+ u2 }# r v* a& J-空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。% q- u; Q, ~8 o$ V
|