本文介绍了RAM以汇编语言存储二进制数和冒泡排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须使用ARM v7进行例程,该例程将10个二进制数字存储在RAM内存中,然后使用冒泡排序将这些数字从高到低排序,我应该如何开始?

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以汇编语言存储二进制数和冒泡排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 03:09