arm基础汇编指令
ldr指令:读内存指令
例: ldr r0,[r1]
假设r1的值为x,这条指令的作用就是读取x地址上的数据(4字节),保存到r0当中。
str指令:写内存指令
例: str r0,[r1]
假设r1的值为x,将r0的值写到地址x上去。
mov指令:赋值指令
例:mov r0,r1
将r1的值赋给r0
也可以直接赋值:mov r0,#0x100
当我们需要赋给r0一个比较大的值该怎么办呢?
比如我们想使r0实现GPBCON的功能,是否直接是mov r0,#0x56000010
实现后发现这样是不行的,因为一条arm指令是32位mov指令本身就需要占用一些位数,某一位再表示r0,剩下的不足32位,因此无法保存这个值。
为此我们使用伪指令:ldr r0,=0x56000010
这条指令就可将r0的值写为0x56000010