S3C2440冒泡排序(汇编)

来源:互联网 发布:php qrcode生成二维码 编辑:程序博客网 时间:2024/05/16 05:22
AREA TEST2,CODE,READONLYENTRYCODE32;把随机的十个数安从小到大的顺序排序,并存放在目标内存单元中;R0,R1用于循环计数;R2,存放Src首地址/R3,存放R2所指向的Src中的值;R4,存放Src+i*4的地址/R5,存放Src+i*4的地址内的值 其中: i*4为偏移量;R6,R7 用于完成R4,R5的i*4偏移量;R8-R11用于 Src数据转存DstSTARTMOV R0,#0;外循环次数MOV R1,#9;内循环次数MOV R7,#4;无意义就是数字4,用来做乘法操作MOV R11,#10;用于Src转移Dst数据次数LOOPOUTSUB R9,R1,R0;内循环次数赋值LDR R2,=Src;Src用于比较的首地址MUL R6,R0,R7;为了计算移动单元ADD R2,R2,R6;当前R2所指首地址LDR R3,[R2];取出当前首地址的值MOV R4,R2;获取首地址指针R2所存的值LOOPINADD R4,R4,#4;指针移动LDRR5,[R4];存放当前R4指向的值 CMP R3,R5SWPHSR3,R3,[R4];交换较小的数给R3STRHS   R3,[R2]SUBS R9,R9,#1BNE LOOPINADD R0,R0,#1;造成下次指针偏移CMP R0,#9BNE LOOPOUTLDR R8,=SrcLDR R9,=DstLOOPENDLDR R10,[R8],#4;读取Src中值STR R10,[R9],#4;将Src中值写入Dst中SUBS R11,R11,#1BNELOOPENDLTROGSrc DCD 0X99,0X88,0X77,0X66,0X65,0X55,0X44,0X33,0X22,0X11Dst DCD 0,0,0,0,0,0,0,0,0,0StopB StopEND

1 0
原创粉丝点击