.text
.globl _start
_start:
mov r0,#9
mov r1,#15
loop:
cmp r0,r1
beq stop @r0相等r1,跳转到结束
subhi r0,r0,r1 @r0大于r1,r0=r0-r1
subcc r1,r1,r0 @r0小于r1,r1=r1-r0
b loop @开始循环
stop:
b stop
.end
类似函数调用:
.text
.globl _start
_start:
mov r0,#9
mov r1,#15
bl loop
mov r2,#0x1
b stop
loop:
cmp r0,r1
moveq pc,lr @r0相等r1,pc=lr(继续执行movr2,#0x1这条指令)
subhi r0,r0,r1 @r0大于r1,r0=r0-r1
subcc r1,r1,r0 @r0小于r1,r1=r1-r0
b loop @循环
stop:
b stop
.end
2.仿照for循环用汇编实现求1-100的和
.text
.globl _start
_start:
mov r0,#1
mov r1,#0 @存放和
loop:
cmp r0,#100 @比较r0和100
bhi stop @r0大于100,跳转到结束
addls r1,r1,r0 @r0小于等于100,r1=r1+r0
add r0,#1 @r0自增加1
b loop @开始循环
stop:
b stop
.end
类似函数调用:
.text
.globl _start
_start:
mov r0,#1
mov r1,#0 @存放和
bl loop
mov r3,#0xf
b stop
loop:
cmp r0,#10 @比较r0和100
movhi pc,lr @r0大于100,pc=lr
addls r1,r1,r0 @r0小于等于100,r1=r1+r0
add r0,#1 @r0自增加1
b loop @开始循环
stop:
b stop
.end