作业
1.求最大公约数:
@
.text
.global _start
_start:mov r0,#0x9mov r1,#0x15bl Loop
Loop:cmp r0,r1 @比较r0寄存器和r1寄存器的中的值beq stop @当两数相同时,退出程序subhi r0,r0,r1 @ r0>r1 r0 = r0 - r1subcc r1,r1,r0 @ r0<r1 r1 = r1 - r0mov pc,lr @恢复现场
stop:
b stop
.end
2.求1-100的和:
@
.text
.global _start
_start:mov r0, #0x1mov r1, #0x64 @r1为100mov r2, #0x00 @r2为求的和bl Loop
Loop:cmp r0,r1 @比较r0和r1addls r2,r2,r0 @当r0小于r1时,r2 = r2 + r0bhi stopadd r0 , #0x01 @r0加1mov pc,lr @恢复现场,将lr寄存器中的值重新赋值给pcstop:
b stop
.end
3.从svc模式切换到user模式
@
.text
.global _start
_start:msr cpsr, #0xD0
stop:b stop