作业
1.求最大公约数:
bash
@
.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<r1 r1 = r1 - r0
mov pc,lr @恢复现场
stop:
b stop
.end
2.求1-100的和:
bash
@
.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模式
bash
@
.text
.global _start
_start:
msr cpsr, #0xD0
stop:
b stop