求最大公约数
.text
.global _start
_start:
mov r0,#9
mov r1,#15
bl cmp_func
cmp_func:
cmp r0,r1
beq stop @相等停止
subhi r0,r0,r1
subcc r1,r1,r0
@bl cmp_func @不相等跳转
mov pc,lr
stop:
b stop
.end
求1-100的和
.text
.global _start
_start:
mov r0,#0x0
mov r1,#0x1
bl add_fun:
add_fun:
add r0,r0,r1
add r1,#0x1
cmp r1,#101
beq stop
@bne add_fun
mov pc,lr
stop:
b stop
.end
测试代码
.text @文本段
.globl _start @声明一个_start全局函数
@数据搬移
_start: @函数入口
ldr r0,=0x40000800
ldr r1,=0x11111111
ldr r2,=0x22222222
ldr r3,=0x33333333
@str r1,[r0,#4] @只存高2字节,屏蔽低2字节 r0地址不变
@str r2,[r0],#4 @只存低2字节,屏蔽高2字节 r0地址+4
str r3,[r0,#4]! @只存高2字节,屏蔽低2字节 r0地址+4
stop: @函数跳转指令
b stop @相当于是循环
.end