LDR指令的格局:
LDR{条件}
效果:将 存储器地址 所指地址处接连的4个字节(1个字)的数据传送到意图寄存器中。
LDR指令的寻址方法比较灵敏,实例如下:
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 Rd,[Rn],#0x04
;这儿Rd不允许是R15。
别的LDRB 的指令格局与LDR类似,只不过它是将存储器地址中的8位(1个字节)读到意图寄存器中。
LDRH的指令格局也与LDR类似,它是将内存中的16位(半字)读到意图寄存器中。
LDR R0,=0xff
这儿的LDR不是arm指令,而是伪指令。这个时分与MOVE很类似,只不过MOV指令后的当即数是有约束的。这个当即数有必要是0X00-OXFF范围内的数通过偶数次右移得到的数,所以MOV用起来比较费事,由于有些数不那么简单看出来是否合法。