ARM汇编指令学习之寻址方式

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    。。。

posted @ 2012-07-04 14:52  nsoft  阅读(436)  评论(0编辑  收藏  举报