arm作业

题目要求:用汇编语言实现1~100之间之和(5050 = 0x13BA)

.text @文本段
.global _start @声明一个_start的全局函数

_start:	@ _start 代表函数入喉
	
	mov r0,#0x1		@ 循环初始值
	mov r1,#0x0		@ 用于求和的值
	
add_func:
	add r1,r1,r0 	@ r1 = r1+r0,更新r1
	add r0,r0,#0x1	@ r0 = r0+1,每次相加后自增
	cmp r0,#0x64	@ 比较r0是否自增到100
	bhi stop		@ 如果大于100就跳到stop
	bls add_func	@ 如果小于等于100就跳到add_func


stop:
	b stop	@跳转stop下的第一条指令进行指向,while(1)死循环
.end
	

arm作业_第1张图片

 求两个数最大的公约数

.text @文本段
.global _start @声明一个_start的全局函数

_start:	@ _start 代表函数入喉
	
	mov r0,#9 @ 初始值r0 = 9
	mov r1,#15@ 初始值r1 = 15
loop:
	cmp r0,r1 @ 比较大小 r0>r1?
	bEQ stop  @ 如果相等就跳转到末尾
	
	subhi r0,r0,r1 @ 如果r0>r1,r0 = r0 - r1
	subcc r1,r1,r0 @ 如果r0

arm作业_第2张图片

 

你可能感兴趣的:(arm)