RAM用汇编语言存储二进制数和冒泡排序 [英] RAM store binary numbers and bubble sort in assembly language

查看:31
本文介绍了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.

strdlomovhi 都必须替换为其他类型:

both strdlo and movhi have to be replaced for other types:

无符号降序:strdhimovlo

签名升序:strdltmovgt

有符号降序:strdgtmovlt

函数原型:

void bubbleSortAscendingU32(uint32_t *pSrc);

void bubbleSortDescendingU32(uint32_t *pSrc);

void bubbleSortAscendingS32(int32_t *pSrc);

void bubbleSortDescendingS32(int32_t *pSrc);

  • 不要问我详情.我得写半本书来解释.按照说明逐步操作,直到您最终了解流程.
  • 您的教授很可能需要很长时间才能理解上述程序.
  • 我怀疑他会相信这是你自己写的.说实话.

这篇关于RAM用汇编语言存储二进制数和冒泡排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆