Q:如何设计ARM汇编语言程序对一组数进行降序排列?
A:基本原理与Nios汇编语言程序实现冒泡排序一样:List列表的第一个数为要排序的数据的个数,其余为待排列的数据。列表中的数据必须“就地”排序,即在排序过程中不申请多余的存储空间,只利用原来存储待排列的数据的存储空间进行比较和交换的数据排序。使用ARM汇编语言编写主程序和子程序SWAP,通过寄存器R0将列表的首地址传递给SWAP子程序,接着将返回值初始化为0,若交换完成,将返回值置1,然后再通过寄存器R0将返回值传递给主程序。
编译下载程序后在Memory窗口观察到待排序的数据位于0x00000070~0x00000094区间,且数据处于与List列表相同的未排序的状态;运行程序后可以再观察到数据已变成降序排列。