1.相对跳转指令:b、bl
这两条指令的不同之处在于bl指令除了跳转之外,还将返回地址(bl 的下一条指令的地址)保存在 lr 寄存器中。
2.数据传送指令 mov,地址读取伪指令 ldr
3.内存访问指令:ldr、str、ldm、stm
4.加减指令:add、sub
5.程序状态寄存器的访问指令:msr、mrs
ARM 处理器有一个程序状态寄存器(CPSR),它用来控制处理器的工作模式、设置中断的总开关。
6.其它伪指令:
.extern 定义一个外部符号
.text 表示下面的语句都属于代码段
.global _start 将本文件中的某个程序(_start)标号定义为全局的
_start:
7.汇编指令的执行条件
eq 相等
ne 不相等
cs/hs 无符号数大于
cc/lo 无符号数小于
mi 负数
pl 非负数
vs 上溢出
vc 没有上溢出
hi 无符号数大于
ls 无符号数小于等于
ge 带符号数大于等于
al 无条件执行
nv 从不执行
这两条指令的不同之处在于bl指令除了跳转之外,还将返回地址(bl 的下一条指令的地址)保存在 lr 寄存器中。
2.数据传送指令 mov,地址读取伪指令 ldr
mov 指令可以把一个寄存器的值赋给另一个寄存器,或者把一个常数赋给寄存器。
ldr 本意为“大范围的地址读取伪指令”
3.内存访问指令:ldr、str、ldm、stm
ldr 指令从内存中读取数据到寄存器,str 指令把寄存器的值存储到内存中。
ldm 和 stm 属于批量内存访问指令,只用一条指令就可以读写多个数据。
4.加减指令:add、sub
5.程序状态寄存器的访问指令:msr、mrs
ARM 处理器有一个程序状态寄存器(CPSR),它用来控制处理器的工作模式、设置中断的总开关。
6.其它伪指令:
.extern 定义一个外部符号
.text 表示下面的语句都属于代码段
.global _start 将本文件中的某个程序(_start)标号定义为全局的
_start:
7.汇编指令的执行条件
eq 相等
ne 不相等
cs/hs 无符号数大于
cc/lo 无符号数小于
mi 负数
pl 非负数
vs 上溢出
vc 没有上溢出
hi 无符号数大于
ls 无符号数小于等于
ge 带符号数大于等于
lt 带符号数小于
gt 带符号数大于
le 带符号数小于/等于al 无条件执行
nv 从不执行