冒泡算法流程图:
简单来说就是,从左至右两两比较排序,一轮过后,舍弃排序过后的最后一个数,再经过一轮排序,再舍弃最后一个数字,如此反复直到,最后只剩下一个数字。
以下为ARM汇编实现:
AREA maopao, CODE, READONLY
CODE32
ENTRY
MSR CPSR_c, #0x10
MOV R4, #0x18
LOOP_W
SUBS R4, R4, #4
BEQ STOP
LDR R1, =data
ADD R6, R1, R4
LOOP
LDR R2, [R1]
LDR R3, [R1, #4]!
CMP R2, R3
STRGT R3, [R1, #-4]
STRGT R2, [R1]
CMP R1, R6
BEQ LOOP_W
B LOOP
STOP
MOV R8, #0x01
AREA list,DATA, READWRITE
data DCD 8,4,5,6,7,1
END