ARM处理器共有9中寻址方式
1.寄存器寻址
操作数的值在寄存器中,指令执行时直接取出寄存器的值来操作
MOV R1,R2 ;R2->R1
SUB R0,R1,R2 ;R1-R2->R0
2.立即寻址
MOV R0,#0XFF00 ;0XFF00->R0
SUBS R0,R0,#1 ;R0-1->R0
3.寄存器移位寻址
MOV R0,R2,LSL #3 ;R2的值左移3位,存入R0, R0=R2*8
4.寄存器间接寻址
LDR R1,[R2]
5.基址寻址
LDR R2,[R3,#0XC0] ;读取R3+0XC0地址上的数据,放入R2
6.多寄存器寻址
LDMIA R1!,{R2-R7,R12} ;将R1指向的单元中的数据读出到R2~R7,R12中(R1自动加1)
7. 堆栈寻址
STMFD SP!,{R1-R7,LR} ;将R1-R7,LR入栈,满递减堆栈
8.块拷贝寻址
STMIA R0!,{R1-R7} ;将R1-R7的数据保存到R0指向的存储器中。R0自动加1。
9.相对寻址
相对寻址是基址寻址的一种变通。由计数器PC提供基址。指令中的地址码字段作为偏移量。
BL SUB1
BEQ LOOP
。。。
LOOP MOV R6,#1
SUB1 。。。