微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > arm汇编冒泡排序

arm汇编冒泡排序

时间:11-21 来源:互联网 点击:
注:本程序在ARM Developer Suite v1.2下调试通过。

//---------------------------------------------------------------------------

// main.c

//---------------------------------------------------------------------------

#include
#include
#include

extern void start(int num,int *arr);
void sort(int num, int *arr)//C语言冒泡排序
{
int i,j,temp;
for(j=0;j<=num-1;j++)
{
for (i=0;iif (arr[i]>arr[i+1])
{
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}

}
int main(void)
{
int num = 10;
int arr[10],i;
srand(time(0));
while(1)
{
printf("before sort result:\n");
for (i=0;i<10;i++){
arr[i] = rand() % 100;
printf("%d\t",arr[i]);
}
printf("\n");
start(num,arr);
//sort(num, arr);
printf("after sort result:\n");
for (i = 0;i<10;i++){
printf("%d\t",arr[i]);
}
printf("\n");
printf("\n");
}
}

//---------------------------------------------------------------------------

// 汇编冒泡排序算法

// sort.s

// 除了start、stag1、stag2可以顶头,其他汇编程序代码前均有一个tab键

//---------------------------------------------------------------------------

area sort,code,readonly
code32

export start ; 向外声明方法start

start
mov r7,r1
stag1
sub r0,r0,#1
cmp r0,#0
movle pc,r14
mov r2,#0
mov r1,r7
stag2
ldr r3,[r1]
ldr r4,[r1,#4]!
cmp r3,r4
strgt r3,[r1]
strgt r4,[r1,#-4]
add r2,r2,#1
cmp r2,r0
beq stag1
b stag2

end

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top