stm32_汇编(STR和LDR)

 

目录

STR -(Store Register)存储指令

LDR -(Load Register)存储指令


ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。

 

STR -(Store Register)存储指令

格式:
str{条件}  源寄存器,<存储器地址>
将源寄存器中数据存到存储器地址中。 

实例1:

str   r1,[r2]        ; 将r1中的值存到r2所指定的地址中

str  r1,[r2,#4]   ;将r1中的值存到r2+4所指定的地址中

str   r1,[r2],#4  ;将r1中的值存到r2所指定的地址中, 同时r2=r2+4

LDR -(Load Register)存储指令

格式:

LDR{条件} 目的寄存器,<存储器地址>

当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转。

 实例1:

  LDR R0,[R1] ;将存储器地址为R1的字数据读入寄存器R0。

  LDR R0,[R1,R2] ;将存储器地址为R1+R2的字数据读入寄存器R0。

  LDR R0,[R1,#8] ;将存储器地址为R1+8的字数据读入寄存器R0。

  LDR R0,[R1,R2]! ;将存储器地址为R1+R2的字数据读入寄存器R0,并将新地址R1+R2写入R1。

  LDR R0,[R1,#8]! ;将存储器地址为R1+8的字数据读入寄存器R0,并将新地址R1+8写入R1。

  LDR R0,[R1],R2 ;将存储器地址为R1的字数据读入寄存器R0,并将新地址R1+R2写入R1。

  LDR R0,[R1,R2,LSL#2]! ;将存储器地址为R1+R2×4的字数据读入寄存器R0,并将新地址R1+R2×4写入R1。

  LDRR0,[R1],R2,LSL#2 ;将存储器地址为R1的字数据读入寄存器R0,并将新地址R1+R2×4写入R1。”

 

你可能感兴趣的:(stm32)