博主自己的学习笔记,顺便分享。不是教科书,有错误很正常,请指出,日后会修改。
STR使用方法
STR R0, [R1] ;R1是地址,将R0数据存放到R1指向的地址
STR R0, [R1, #0x10] ;将R0数据写入以R1+0x10为地址的存储器中,R1不变
STR R0, [R1], #0x10 ;将R0数据写入以R1+0x10为地址的存储器中,R1+0x10
LDR使用方法
ldr r1, =0x12345678 ;r1=0x12345678
;其实真正的汇编代码是将某个地址的值传递给r1,就是说需要一个地址存放0x12345678这个立即数,实际上可以看作是一条伪指令
LDR和MOV对比
ldr r1, =0x10
等于
mov r1, #0x10
B使用方法
指令 | 描述 |
B <label> | 跳转到 label,如果跳转范围超过了+/-2KB,可以指定 B.W<label>使用 32 位版本的跳转指令, 这样可以得到较大范围的跳转 |
BX <Rm> | 间接跳转,跳转到存放于 Rm 中的地址处,并且切换指令集 |
BL <label> | 跳转到标号地址,并将返回地址保存在 LR 中。 |
BLX <Rm> | 结合 BX 和 BL 的特点,跳转到 Rm 指定的地址,并将返回地址保存在 LR 中,切换指令集。 |