arm汇编LDR

  • LDR指令的格式:

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

作用:将 存储器地址 所指地址处连续的4个字节(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的字数据读入寄存器R0,并将R1+R2的值存入R1。
LDR R0,[R1],#8   		;将存储器地址为R1的字数据读入寄存器R0,并将R1+8的值存入R1。
LDR R0,[R1,R2]!   	;将存储器地址为R1+R2的字数据读入寄存器R0,并将R1+R2的值存入R1。
LDR R0,[R1,LSL #3]   		;将存储器地址为R1*8的字数据读入寄存器R0。
LDR R0,[R1,R2,LSL #2]  	 ;将存储器地址为R1+R2*4的字数据读入寄存器R0。
LDR R0,[R1,,R2,LSL #2]! 	;将存储器地址为R1+R2*4的字数据读入寄存器R0,并将R1+R2*4的值存入R1。
LDR R0,[R1],R2,LSL #2   	;将存储器地址为R1的字数据读入寄存器R0,并将R1+R2*4的值存入R1。
LDR R0,Label             	;Label为程序标号,Label必须是当前指令的-4~4KB范围内。

ldr r0,_start		; 从内存地址_start的地方,把其对应的 命令执行对应的 “执行码”读入到r0中。
ldr r0,=_start		; 这里面出现的“=”预示着这是一条伪指令,这个是取得标号_start的“绝对地址”,
					; 这个绝对地址就是在link的时候确定的,就是编译地址。
ldr pc,_start		; 读取执行码直接到 pc中,这样就实现了直接跳转到_start运行了。

要注意的是

LDR Rd,[Rn],#0x04   ;这里Rd不允许是R15。
另外LDRB 的指令格式与LDR相似,只不过它是将存储器地址中的8位(1个字节)读到目的寄存器中。
LDRH的指令格式也与LDR相似,它是将内存中的16位(半字)读到目的寄存器中。
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值