冒泡排序(汇编代码)

冒泡排序(汇编代码)

include irvine32.inc 

.data
		count dd lengthof arr		;lengthof arr == ($-arr)/4
		arr dd 78, 25, -56, 0, 49, 32, 100, 6542, 231
.code
main proc
		mov eax, count
		mov esi, 0					;call dumpregs
 
again_1:
		cmp esi, count
		jae final
		
		call BubbleSort	
		add esi, 1
		jmp again_1
		
final:
		call output
		
		exit
main endp

BubbleSort proc
		mov edi, 0
		mov ebx, 1
		
again_2:
		cmp ebx, count
		jae last
		
		mov eax, arr[4*edi]
		cmp eax, arr[4*ebx]
		jl next
		
		call swap
		
next:	add edi, 1
		add ebx, 1
		jmp again_2
		
last:	
		ret
BubbleSort endp

swap proc
		push arr[4*edi]
		push arr[4*ebx]
		pop arr[4*edi]
		pop arr[4*ebx]

		ret
swap endp

output proc
		
		mov esi, 0

again_3:
		cmp esi, count
		jae tail
		
		mov eax, arr[4*esi]
		call writeint
		mov al, ' '
		call writechar
		
		add esi, 1
		jmp again_3

tail:
		ret
output endp 

end main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值