			;
			;		bubble sort algorithm
			;
size			dcd		10
data			dcd		8,4,5,10,9,1,3,11,0,7
			
			mov		r1,#size
			ldr		r0,[r1]	; r0 = number of elements
			
outer_loop
			mov		r1,#data	; r1 = start of array
			mov		r2, r0
			mov		r3,#0
inner_loop
			cmp		r2, #1
			beq		end_inner_loop
			
			ldr		r4,[r1]
			ldr		r5,[r1,#4]
			
			cmp		r4, r5
			blt		do_not_swap
			
			str		r5, [r1]
			str		r4, [r1,#4]
			mov		r3,#1
			
do_not_swap
			add		r1, r1, #4
			sub		r2, r2, #1
			b		inner_loop
			
end_inner_loop
			cmp		r3, #0
			bne		outer_loop
			
			end
