1.求最大公约数:

- @
- .text
- .global _start
- _start:
- mov r0,#0x9
- mov r1,#0x15
- bl Loop
- Loop:
- cmp r0,r1 @比较r0寄存器和r1寄存器的中的值
- beq stop @当两数相同时,退出程序
- subhi r0,r0,r1 @ r0>r1 r0 = r0 - r1
- subcc r1,r1,r0 @ r0
- mov pc,lr @恢复现场
- stop:
- b stop
- .end

2.求1-100的和:
- @
- .text
- .global _start
- _start:
- mov r0, #0x1
- mov r1, #0x64 @r1为100
- mov r2, #0x00 @r2为求的和
- bl Loop
- Loop:
- cmp r0,r1 @比较r0和r1
- addls r2,r2,r0 @当r0小于r1时,r2 = r2 + r0
- bhi stop
- add r0 , #0x01 @r0加1
- mov pc,lr @恢复现场,将lr寄存器中的值重新赋值给pc
-
- stop:
- b stop
- .end

3.从svc模式切换到user模式
- @
- .text
- .global _start
- _start:
- msr cpsr, #0xD0
- stop:
- b stop

