ADD R0,R0,#1;R0←R0+1
ADD R0,R0,#0x3f;R0←R0+0x3f
2、寄存器寻址操作数在寄存器
ADD R0,R1,R2;R0←R1+R2
3、寄存器间接寻址 操作数的地址在寄存器
ADD R0,R1,[R2];R0←R1+[R2]/ p, M, i' z# C5 {
LDR R0,[R1];R0←[R1]$ Q, V" H' I+ C) S
STR R0,[R1];[R1]←R0
4、基址变址寻址操作数地址=基址寄存器+指令中给出的地址偏移
LDR R0,[R1,#4];R0←[R1+4]! ?( V' Y9 y6 C! p4 U: ~$ p: V/ V
LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+41 J1 b- s; y$ Z- {% y0 {1 l
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]' o q# z* }! L! u
;R3←[R0+8]( ~6 Y5 a' q u9 i6 i/ o) o
;R4←[R0+12]
6、相对寻址目标地址= pc当前值+指令给出的标号偏移地址
BL NEXT;跳转到子程序NEXT处执行
......
NEXT
......
MOV PC,LR;从子程序返回
7、堆栈寻址. r" r s" @2 C8 s# U
ARM微处理器支持这四种类型的堆栈工作方式。
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) | Powered by Discuz! X3.2 |