單片機實驗一冒泡法排序_第1頁
單片機實驗一冒泡法排序_第2頁
單片機實驗一冒泡法排序_第3頁
單片機實驗一冒泡法排序_第4頁
單片機實驗一冒泡法排序_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗一:冒泡法排序實驗一、實驗要求實驗目的:掌握控制轉移指令的功能,以及冒泡法排序的原理。實驗要求:設30H開始的10個存儲單元中,存放的是無符號數,編寫程序實現:10個數排序,存放在50H開始的單元中。二、實驗原理多重循環即循環嵌套結構。多重循環程序的設計方法和單重循環是一樣的,只是要分別考慮各重循環的控制條件。內循環屬于外循環體重的具體處理部分。在多重嵌套中,不允許各個循環體相互交叉,也不允許從外循環跳入內循環,否則編譯時會出錯。應該注意每次通過外循環進入內循環式,內循環的初始條件需要重置。三、程序設計1、程序流程圖2、程序代碼NEQU10TABEQU30HORG0000HMOV30H,#

2、1;在30H中輸入10個隨機數MOV31H,#3MOV32H,#2MOV33H,#4MOV34H,#6MOV35H,#8MOV36H,#7MOV37H,#11MOV38H,#9MOV39H,#10SORT:MOVR4,#N-1LOOP1:MOVA,R4;冒泡法循環MOVR3,AMOVR0,#TABLOOP2:MOVA,R0MOVB,AINCR0MOVA,R0CLRCMOVR2,ASUBBA,BJNCUNEXCHMOVA,R2UNEXCH:DJNZR3,L00P2;如果AvB,順序執行UNEXCHDJNZR4,LOOP1LJMPSWITCHEXCH:DECR0;如果AB,則A,B調換位置XCHA

3、,R0INCR0MOVR0,ASWITCH:MOVR0,#30HMOVR1,#50HMOVR2,#NPAIXU:MOVA,R0;將30H中排好的數移動到50H中MOVR1,AINCR0INCR1DECR2CJNER2,#0,PAIXUSJMP$END四、程序驗證1、在30H中輸入10個數,顯示如下:4XAddress:D:0 x30:0:01020304060703090AQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQD:0 x45:3:000000000000000001020304Q60708090A000000003Q0000D:0:00000000000000000000

4、0000000000000000000000000000D:0 x73:3:0000000000000000FF070000000000000000000000000000D:0 x90:0:FF000000000000000000000000000000FF00000000000000D:0 xA8:3:0000000000000000FF000000000000000000000000000000D:0 xCO:0:000000000000000000000000000000000000000000000000D:0kD8:3:0000000000000000000000000000000

5、00000000000000000Command|HMemory1圖3對30H中10個數排序后的結果圖230H單元中存儲的10個數2、對30H中的10個數排序,結果如下:3、將30H中的數轉移到50H中,結果如下:iJnMemory2D:0 x500:01Q2030406078090A000000003000000000000000000000D:0 x608:000000000000000000000000000000000000000000000000D:0 x800:FF070000000000000000000000000000FF00000000000000D:0 x9-B8:000

6、0000000000000FF0000000000000000000000000000000:FF0000000000000000000000000000000000000000000000D:OxCS8:000000000000000000000000000000000000000000000000D:OxEO0:000000000000000000000000000000003000000000000000D:OxFB8:00000000000000003A5A0000000000000000000000000000Address:|D:5CHtlCallStack|Locals1Watch1Memory2|Symbols圖430H中10個數轉移到50H之后的結果結論:程序基本符合實驗要求。但第10個數會“丟失”因為按Loopl、Loop2循循環,第10個數(39H)要跟第11個數(40H)交換,而(40H)=00。故39H中的數會“丟失”五、實驗總結1、本實驗用匯編語言寫冒泡法程序,算法基本思路與C語言的冒泡法程序相似,可參照C語言程序編寫匯編語言程序。2、先畫算法流程圖再寫程序有助于理清思路。3、本實驗匯編程序參考了課本P的冒泡法例程。但書上的程序Loop2處有錯誤:書上的算法是:SUBBA,BJNCUNEXH此時A=(A)-(B)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論