《ARM汇编-冒泡排序-实验报告.docx》由会员分享,可在线阅读,更多相关《ARM汇编-冒泡排序-实验报告.docx(2页珍藏版)》请在第壹文秘上搜索。
1、试验要求实现字符串片泡排序。试验过程首先在内存中定义字符串.运用的方法是areaSortdata1Data1ReadwritestrDCB,9847210356,IenDCD10DCB表示在内存中开拓一个byte的空间。DCD则表示开拓一个word的空间采纳两层循环来进行冒泡排序。第一层循环首先把rl初始化为字符由首地址,把r5初始化为0.r5代表内循环执行次数,然后把r4减1.因为最终的一个字符已经排好序了。假如r4=0,代表排序已经完成.调到结束代码.100pOMOVrl.r;rlisthestartaddressofstnngSUBSr4.r4.#l:r4isthelastindex,t
2、hecounterCMPr4,S0BEQendMOVr5.#0其次层循环就是从左往右对字符进行交换,每次把rl和r5的值都增加Io当r5=r4的时候就跳出循环,到达外层循环。;ineveryloop,swapthevalueofcontiguoustwobytesfromthestarttostart+r4!usingrlastheaddress,ncrementineveryinnerloopjusi11gr2.r3toloadthetwobytesthenmpare:ifr3issmallerthanr2.;thenstorethevalinswappedplaceloop1.DRBr2,
3、rl1.DRBr3,rl.#lCMPr2,r3STRGTBr2,rl,lSTRGTBr3.(rljADDrl,rl.#lADDr5,r5.#lCMPr5,r4BNElp;ifreachestheend.branchtoouterlpBlp为了让字符从小到大排列,在CMPr2j3后.连续运用STRGT(StOreGreaterThan).假如r2r3,就分别把他们存进对方的地址实现交换。3RM7TBcurrentrrFrlr2r3ir4i-r5?-rrr7r-r8rr9rrlprllr2hr1311rl4丁PCVCPer-spsr0X00008058OXOOoO8058OxOOOOOO3S0x0
4、000003S0x000000090x000000000x000000000x000000000x00000000OXoOOOOoooOXOOOoo00。0x000000000x000000000x000000000x000000000x00008024nWeVq工FJSVCIUCVQlrJRe33939341000FF3839341000FF37E737313033EeOOE8X.s.$947210356Oo313033E8OO8X.6.SM721035801l2e000口uE88北ff88rrxW008MOlxooeoM3oxXWOOtMOFOxocooeso”lC)0M0)8OCOOt7010程序执行究竟,可以石到字符均已经排好序.试验结论通过本次试蛤,我对ARM汇编的基本指令更加了解了,知道了简洁的分支指令条件指令和访存指令的运用方法。