一,代码
1,基础代码
mov r0,#1 将r0寄存器置1
mov r0,r2 将r2寄存器值赋予r0寄存器
mov r1,r0,lsr #4 等价于r0>>4 将r0中数右移4位后赋予r1 (二进制右移
mvn r0,r2 将r2值取反后赋予r0
ldr r0,=0x5222 将r0寄存器赋予指定的值
add/sub/subs/mul 目标寄存器 被加/减寄存器值 加上/减去的值
add r2,r0,r1 将r0+r1后的值赋予r2 想改变cpsr中的值需要加s 如subs
b func 跳入func中不更新lr
bl func 跳入func 并且更新lr
2,比较代码,内存地址的写入与读出
cmp r0,r1 比较r0,r1寄存器中值的大小 (后续判读实际根据cpsr寄存器中内容
add后缀 目标寄存器 r0, r1 将r0,r1中的值进行具体的操作后保存至r0
如addgt r2,r0,r1 配合上方cmp 如果r0大于r1 将r0+r1后的值保存至r2 后缀gt表示大于
ldr r1,[r0] r1 = *r0 将r0内存中的值保存至r1寄存器
ldr r1,[r0,#4] ldr r1,[r0,#4]! ldr r1,[r0],#4
r1 =