EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1、立即寻址操作数在指令中直接给出ADD R0,R0,#1;R0←R0+16 T( r! K/ g; z, \
ADD R0,R0,#0x3f;R0←R0+0x3f
- O$ c9 K/ f. b4 ~6 h$ q R" M2、寄存器寻址操作数在寄存器 ADD R0,R1,R2;R0←R1+R2 3、寄存器间接寻址 操作数的地址在寄存器 ADD R0,R1,[R2];R0←R1+[R2]
% Z+ M0 w8 Q- j* I& e c BLDR R0,[R1];R0←[R1]' B7 N' [0 Q" [' |/ Z
STR R0,[R1];[R1]←R0 2 G6 | v3 S. Y+ c2 d# E O% A
4、基址变址寻址操作数地址=基址寄存器+指令中给出的地址偏移 LDR R0,[R1,#4];R0←[R1+4] [4 j; G! A: I- C( \
LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4$ `1 u3 i7 J! n# T6 _
LDR R0,[R1],#4;R0←[R1]、R1←R1+4
5 f* L; E# u. B1 qLDR R0,[R1,R2];R0←[R1+R2] 9 X: z3 W$ _6 [
5、多寄存器寻址类似寄存器寻址,此处是多个寄存器而已 LDMIA R0,{R1,R2,R3,R4};R1←[R0]* ]+ D8 N% U6 s$ @0 I- Z6 K
;R2←[R0+4]6 E3 S- t3 F. a2 T4 R/ r. }
;R3←[R0+8]
: K3 ?# t q, n8 A2 N;R4←[R0+12]
, o" `2 _4 X; m) q3 A1 J6、相对寻址目标地址= pc当前值+指令给出的标号偏移地址 BL NEXT;跳转到子程序NEXT处执行
8 H0 `" p, `9 y- t) W......7 C! n1 V: o9 R! n2 @9 T, t
NEXT* \$ p2 h4 `7 C# y
......
' s, C5 H! X4 F1 [) XMOV PC,LR;从子程序返回
1 [# d) h% @7 B5 o7、堆栈寻址
( R3 A( O, ^# Y% I8 T7 AARM微处理器支持这四种类型的堆栈工作方式。 -满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。
( R F7 G- s, Y-满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。! V+ y. C3 v. F7 F$ s' Y8 g
-空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。
& m( K/ J& S/ \' K-空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。. D0 k; F9 v5 Y; m# I6 z
|