首先要实现的冒泡排序C语言代码如下:
#include <cstdio>
int main()
{
int data1[] = {1, 5, 3, 34, -2, 1, 0};
int size = sizeof(data1) / sizeof(data1[0]);
for(int i = 0; i < size - 1; i++)
{
for(int j = 0; j <size - i - 1; j++)
{
if(data1[j] > data1[j + 1])
{
int temp = data1[j];
data1[j] = data1[j+1];
data1[j+1] = temp;
}
}
}
for(int i = 0; i < size; i++)
printf("%d ",data1[i]);
printf("\r\n");
return 0;
}
在Ubuntu上运行结果:
汇编对应的汇编代码如下:
.equ len, 6 @数组长度减一,对应size - 1
.global _start
_start:
ldr r0, =data1 @r0存储数组首地址
mov r1, #0 @r1存储外层循环的计数值 --- i
mov r2, #0 @r2存储内层循环的计数值 --- j
loopi: