1 常用ARM指令1:数据处理指令
- 数据传输指令 mov mvn
mov(move)
mov r1, r0 @两个寄存器之间数据传递
mov r1, #0xff @ 将立即数赋值给寄存器
mvn和mov用法一样,区别是mov是原封不动的传递,而mvn是按位取反后传递 按位取反的含义: 譬如r1 = 0x000000ff,然后mov r0, r1 后,r0 = 0xff。 但是我mvn r0, r1后,r0=0xffffff00。
- 算术指令 add sub rsb adc sbc rsc
- 位运算指令 and orr eor bic
and 按位与
orr 按位或
eor 按位异或
bic 位清除指令
bic r0,r1,#0x1f @ 将r1中的数的bit0到bit4清零后赋值给r0
- 比较指令 cmp cmn tst teq
比较指令: cmp cmp r0, r1 等价于 sub r2, r0, r1 (r2 = r0 - r1)
cmn cmn r0, r1 等价于 add r0, r1
teq
比较指令用来比较2个寄存器中的数
注意:比较指令不用后加s后缀就可以影响cpsr中的标志位。
- 乘法指令 mvl mla umull umlal smull smlal