1、第三次作业ARM汇编程序实现选择排序一、实验原理算法:选择排序算法C语言不多说了VoidSortintdat=10,9,8,7,6,5,4,3,2,1,0;intx,y,len,tem p;len=sizeof(dat)/sizeof(dat0);for(x0;xlen-1;x+)t=x;for(y=x+1;ylen;y+)if(datydatt)t=y;if(t!=x)tem p=datx;datxdatt;datt=tem p;elsbreak;二、程序清单:1、汇编代码清单AREparm ,CODE,RADONLY;声明代码段parmNTRY ;标识程序入口CODE32 ;声明32位AR
2、M指令EXPRTm ainIMOprintfIPRT|Lib$Request$arm lib|,WEAKm ainSTARTSTMFDsp!,r4,lrLDRr0,lenSUBr1,r0,#1LDRr2,=datMOVr3,#0lop_outMOVr5,r3ADr4,r3,#1lop_inLDRr6,r2,r4,LS#2r7,r2,r5, #2CMPr6,r7BGEnext_yMOVr5,r4next_yADr4,r,#1CMPr4,r0BNElop_inCMPr3,r5BEQsort_okLDRr6,r2,r3,LS#2r7,r2,r5, #2STRr6,r2,r5,LS#2r7,r2,r3, #2ADr3,r,#1CMPr3,r0BNElop_outsort_okADRr0,form atLr2,=datDRr4,lenMOVr3,#0print_extSTMDAsp!,r0-r4LRr1,r2,r3,LS#2BprintfLDMIBsp!,r0-r4Ar3,r,#1CMPr3,r4BNEprint_extADRr0,line_ndBLprintfDMFDsp!,r4,pcdatDC10,9,8,7,6,5,4,3,2,1dat_endDC0lenDC10form atDCB“%d,0“line_ndDCB“n0“EN3、调试与运行图1代码编辑图2单步查看寄存器