前次提到汇编语言十分重要,所以又为了防止忘掉,贴上一些常用汇编指令
@mov 指令典范
mov r1, #8
mov r2, r1
mov r3, #10
@mvn 传送取反赋值
mvn r1, #0b10
mvn r2, #5
mvn r3, r1
@sub 减法 意图寄存器 被减数(不能是当即数) 减数
mov r2,#4
sub r1,r2,#2
mov r0,#1
sub r3,r1,r0
@add 加法 意图寄存器 两个相加的数
add r1,r2,#3
@and 逻辑与 意图寄存器 要与的两个数
mov r1,#5
and r2,r1,#0
mov r1,#5
and r2,r1,#1
@bic 位清零 意图寄存器 被铲除目标 掩码(为1的位进行清零)
mov r1,#0b101011
bic r2,r1,#0b101
@cmp 比较 成果保存在cpsr(程序状况寄存器)中
mov r1,#2
cmp r1,#1
mov r1,#2
cmp r1,#3
mov r1,#2
cmp r1,#2
@tst 测验位 两个数按位与 看是否为0 成果存在cpsr中
mov r1,#0b101
tst r1,#0b001
mov r1,#0b101
tst r1,#0b10
@b 分支
mov r1,#6
mov r2,#5
cmp r1,r2
bgt branch
branch:
sub r3,r1,r2
end
@bl 带链接回来的跳转
bl func1
func1:
mov r1,#2
mov r2,#3
mov pc,lr
@msr mrs
mrs r0,cpsr
orr r0,#0b100
msr cpsr,r0
@ldr 内存到寄存器
mov r0,#0xff
str r0,[r1]
ldr r2,[r1]
@str 寄存器到内存 寄存器 内存地址
mov r0,#0xff
str r0,[r1]