arm 汇编指令II
运算

跳转指令

b直接跳转
bl把下一个指令地址设置到lr中,然后调用函数
pc是执行当前指令的位置
案例

.text
main:
mov r5, #0
mov r0,#2
bl, func1
main_end:
b main_end
func1:
mov r12. lr
cmp r0, #2
bleq func2
blne func3
func1_end:
mov pc, r12
func2:
add r0, #3
func2_end:
mov pc,lr
func3:
sub r0, #1
mov pc,lr
.end实现延时

@for(i=1000000,i>10;i--){}
delayls:
ldr r5, =0x3fffff
loop:
cmp r5, #0
beq delayls_end
sub r5, #1
b loop
delayls_end:
mov pc,lr

mov r0, #9
gcd:
loop:
cmp r0,r1
beq gdc_end
subgt r0,r0,r1
sublt r1,r1,r0
gdc_end:
mov pc,lr