.func
bubbleSortAscendingU32:
ldr r3, [r0], #4
mov r1, #9*4
mov r12, #9*4
1:
ldr r2, [r0], #4
cmp r2, r3
strdlo r2, r3, [r0, #-8]
movhi r3, r2
subs r12, r12, #4
bgt 1b
sub r0, r0, r1
subs r1, r1, #4
ldrgt r3, [r0, #-4]
movgt r12, r1
bgt 1b
bx lr
.endfunc
假设我们正在处理一系列uint32_t
,上面的方法可能有效。
both strdlo
and movhi
必须更换为其他类型:
无符号降序:strdhi
and movlo
签名升序:strdlt
and movgt
降序签名:strdgt
and movlt
函数原型:
void bubbleSortAscendingU32(uint32_t *pSrc);
void bubbleSortDescendingU32(uint32_t *pSrc);
void bubbleSortAscendingS32(int32_t *pSrc);
void bubbleSortDescendingS32(int32_t *pSrc);
- 不要问我细节。我得写半本书来解释。逐步按照说明进行操作,直到您最终了解流程。
- 你的教授很可能需要相当长的时间才能理解上面的例程。
- 我怀疑他会相信这是你自己写的。说实话。