汇编指令--冒泡排序

.text
@冒泡排序
@排序   2,3,5,4,1
@排序4趟
@ r0=arr1指向首元素   r1=arr1+16指向最后一个元素
	mov r3,#4        @排序4趟,表示趟数
nextloop:	
	ldr r0,=arr1     @指向首元素
	add r1,r0,#16 	@指向最后一个元素
	
again:
	ldr r5,[r0],#4   @r5存放前边的元素(r0指向后一个元素)
	ldr r6,[r0]      @r6存放后边的元素,r0不变
	cmp r5,r6        @比较r5和r6
	
	bls notchange    @若r5<=r6跳转
	
	str r5,[r0]      @否则r5>r6,将此时指向r6的元素写入r5中
	str r6,[r0,#-4]  @前索引  r6=*(r0-4)  ,交换r5和r6的位置
	
notchange:  @ r5<=r6
	cmp r0,r1   	 @判断一趟排序是否结束
	bne again   	 @若r0!=r1没有结束,跳转继续比较
	subs r3,r3,#1    @一趟排序结束后,趟数-1 ,判断是否结束了4趟排序
	bne nextloop	 @没有结束,继续下一趟
	
	nop
	
.end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值