RAM用汇编语言存储二进制数和冒泡排序 [英] RAM store binary numbers and bubble sort in assembly language
本文介绍了RAM用汇编语言存储二进制数和冒泡排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我必须使用 ARM v7 执行一个例程,在 RAM 内存中存储 10 个二进制数,然后使用冒泡排序将这些数字从高到低排序,我应该如何开始?
I have to do a routine using ARM v7 that store in RAM memory 10 binary numbers and then sort these numbers from high to low using bubble sort, how should I start?
推荐答案
.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
数组,上面的方法可能会起作用.
Assuming we are dealing with an array of uint32_t
, that above might work.
strdlo
和 movhi
都必须替换为其他类型:
both strdlo
and movhi
have to be replaced for other types:
无符号降序:strdhi
和 movlo
签名升序:strdlt
和 movgt
有符号降序:strdgt
和 movlt
函数原型:
void bubbleSortAscendingU32(uint32_t *pSrc);
void bubbleSortDescendingU32(uint32_t *pSrc);
void bubbleSortAscendingS32(int32_t *pSrc);
void bubbleSortDescendingS32(int32_t *pSrc);
- 不要问我详情.我得写半本书来解释.按照说明逐步操作,直到您最终了解流程.
- 您的教授很可能需要很长时间才能理解上述程序.
- 我怀疑他会相信这是你自己写的.说实话.
这篇关于RAM用汇编语言存储二进制数和冒泡排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文