




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文格式為Word版,下載可任意編輯 微機(jī)原理與接口技術(shù)實(shí)驗(yàn)冒泡法 、試驗(yàn)內(nèi)容 用“冒泡“法對(duì)一組數(shù)300, 250, 280, 240, 260,按從小到大的順序排列 提醒: 用冒泡的方法對(duì)一組數(shù)據(jù)元素排序,它的基本方法是: 將相鄰的兩個(gè)元素通過(guò)對(duì)比進(jìn)行排序,通過(guò)屢屢,多遍的鄰元素排序,實(shí)現(xiàn)整個(gè)一組數(shù)的排 序。 對(duì)于5 ( N )個(gè)元素,整個(gè)排序通過(guò)4遍(=N-1 )鄰元素排序完成。每一遍的排序由若干次 鄰元素的排序組成。 4遍排序中,鄰元素的排序依次為 4, 3, 2, 1遍。完成第一遍排序后,最大數(shù)沉底,已經(jīng) 到達(dá)它應(yīng)占據(jù)的位置,不需要加入下一遍的排序。 外循環(huán)的次數(shù)為CX=4次(N-1
2、),內(nèi)循環(huán)的次數(shù)為4,3,2,1(DECCX ) 排序遍數(shù)本遍排序前第一次排序其次次排序第三次排序第四次 后后后后 240, 260240, 260240, 260300, 260260J 300 欠排序 1300, 250, 280, 250, 300, 280, 250, 280, 300, 250,280, 240, 250, 280 240, 2250, 280, 3250, 240, 260, 300260, 260, 250, 280、240, 250, 240, 300260, 30C280, 300 280, 250, 240, 260, 4240, 250, 280, 300
3、280, 260, 250, 240, 260, 240, 250, 300280, 300 260, 240, 250, 260, 280, 300280, 300 試驗(yàn)要求: 1. 編制程序,對(duì)這組數(shù)進(jìn)行排序,并輸出原數(shù)據(jù)及排序后數(shù)據(jù); 2. 利用DEBU調(diào)試工具,用D0(是D零命令)命令,查看排序前后,內(nèi)存數(shù)據(jù)的變化; 3. 去掉最大和最小的兩個(gè)值,求出其余值的平均值,并輸出最大值,最小值和平均值; 4. 用學(xué)過(guò)的壓棧PUSH和出棧POF指令,將平均值按位逐個(gè)輸出(即輸出263); 5將平均值263轉(zhuǎn)化為二進(jìn)制串,并將這組二進(jìn)制串輸出。 6.所有數(shù)據(jù)輸出前要用字符串的輸出指令,進(jìn)行輸出提
4、醒(如:zuidazhishi:300 等),所有數(shù)據(jù)結(jié)果能清楚地顯示在屏幕上。 二、程序清單及流程圖 冒泡法: DATASEGMEI定義數(shù)據(jù)段 VARDW300,250,280,240,260;定義待排序的量 NEQU$-VA占內(nèi)存空間的大小,是次數(shù)的兩倍;由于這是字定義 EJDW?給平均值預(yù)留存儲(chǔ)空間 YSSJDByua nshishujujilushi:$:原始數(shù)據(jù)的輸出提醒PXHDBODH,OAH,paixuhoudeshujujilushi:$:排序后的輸出 ;提醒 MAXSDBODH,OAH,zuidazhishi:$:最大值輸出提醒MINSDBODH,OAH,zuixiaozhi
5、shi:$:最小值輸出提醒 EQSDB0DH,0AH,pingjunzhishi:$;平均值10 進(jìn)制輸出提醒 EQEDB0DH,0AH,pi ngjun shudeerji nzhidaimashi:$:平均值 ;的二進(jìn)制數(shù)制的輸出提醒 DATAENDS ;定義堆棧段 STACKSEGMENTPARASTACKSTACK STAPNDW200DUP STACKENDS ;定義代碼段 CODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK各代碼段,數(shù)據(jù)段,堆棧段; 初始化 START:MOVAX,DATA MOVDS,AX MOVCX,N-2 ;原始數(shù)據(jù)顯示 MO
6、VDX,OFFSETYS顯示原始數(shù)據(jù)的輸出提醒的字符串,下同 MOVAH,9系統(tǒng)調(diào)用09H號(hào)功能,輸出字符串 INT21H MOVCXN俞出原始數(shù)據(jù)循環(huán)初值 MOVDX,10;D的初始化 MOVSI,0;變量的偏移量024,6,8 XSX:MOVAX,VARSI將變量依次取出,逐個(gè)顯示CALLXSXH調(diào)用顯示子程序 ADDSI,2;改變變量的偏移量 DECCX改變CX終止循環(huán) LOOPXSX ;冒泡算法 MOVCX,N-2 WXH:PUSHCX MOVSI,0 NXH:MOVAX,VARSI暫存當(dāng)前內(nèi)存中的數(shù)據(jù),一個(gè)字變量 CMPAX,VARSI+2與下一內(nèi)存中的字變量對(duì)比 JLENXF假如前
7、一字變量不大于后一字變量,不做交換,;直接修改偏移地址 XCHGAX,VARSI+2該項(xiàng)SI值并不改變 XCHGAX,VARSI交換,將較大值往后移 NXF:ADDSI,2;改變偏移量,將所有數(shù)對(duì)比完 DECCX實(shí)現(xiàn)內(nèi)層循環(huán) LOOPNXH POPCX改變外層循環(huán)次數(shù) DECCX外層循環(huán)次數(shù)遞減 LOOPWXH ;排序后的數(shù)據(jù)顯示(同原始數(shù)據(jù)顯示) MOVDXQFFSETPXH示排序后數(shù)據(jù)的輸出提醒的字符串 MOVAH,9字符串顯示 INT21H MOVCX,N MOVDX,0 MOVSI,0 XSH:MOVAX,VARSI CALLXSXH調(diào)用顯示子程序 ADDSI,2 DECCX LOOP
8、XSH ;最小值輸出顯示 MOVDX,OFFSETMINS MOVAH,9 INT21H MOVSI,0 MOVAX,VARSI最小值是排序后該片內(nèi)存中偏移量為0的數(shù)值 CALLXSXH ;最大值輸出顯示,最大值的偏移量與定義的類型及個(gè)數(shù)有關(guān)MOVDXQFFSETMAXS MOVAH,9 INT21H MOVAX,VARSI+8最大值是該片內(nèi)存中偏移量最大為N-2的值CALLXSXH ;求平均值 MOVDX,0 MOVCX,2保存求和的個(gè)數(shù),此處去掉最大最小值,個(gè)數(shù)為 ;N/2-2 MOVSI,2;暫存求和起始偏移量,此處為2,不排最小值 MOVAX,VARSI QH:ADDSI,2 ADDA
9、X,VARSI LOOPQH匕循環(huán)用來(lái)求取排完序后的和 MOVBX,3 CWD T展,求平均值,此處平均值大于255 IDIVBX;余數(shù)在DX 商在AX MOVEJ,AX將平均值(即商)寫入內(nèi)存,備用 ;使用PUSH POP功能實(shí)現(xiàn)顯示10進(jìn)制的平均值MOVDXQFFSETEQS MOVAH,9 INT21H;輸出相應(yīng)提醒字符串 MOVAX,EJ;將平均值寫入寄放器,進(jìn)行處理 MOVBL,10先取最低位 IDIVBL MOVDL,AH余數(shù)在高位,給DX暫存 PUSHDXI低位先壓棧 ANDAX,00FFH備余數(shù)清0,保存商,再次取余 IDIVBL;此前為變BL值,再次取余,的次低位 MOVDL
10、,AH將余數(shù)給DL暫存 PUSHDXI低位壓棧 MOVDL,AL此例僅3為,若有更高位,繼續(xù)上述處理 PUSHDXI高位壓棧 MOVCX,3;C存十進(jìn)制數(shù)的位數(shù) XHSC:POPDX ADDDL,30H MOVAH,02H INT21H LOOPXHS依次彈出最高位,次高位,最低位,并逐一顯示;將平均值轉(zhuǎn)換為二進(jìn)制顯出 MOVDXQFFSETEQE MOVAH,9 INT21H;輸出相應(yīng)提醒字符串 MOVBX,EJ;將平均值寫入BX寄放器進(jìn)行處理 MOVCX,16循環(huán)次數(shù),與定義的類型相關(guān),一個(gè)字節(jié)8次 XHYW:ROLBX,循環(huán)左移,依次取最低位 MOVDL,BL數(shù)據(jù)暫存 ANDDL,01H
11、取最低位,其余清0 ADDDL,30H MOVAH,02H INT21H LOOPXHY依次顯示各位 ;算法終止,回歸系統(tǒng) MOVAH,4CH INT21H ;顯示子程序僅用于顯示,此處不使用堆棧, XSXHPROC MOVBL,1O0這里取最高位,數(shù)值100與位數(shù)有關(guān),若有4位,則為1000 IDIVBL;除法,得余數(shù)和商 MOVDX,A)高余低商,故將商給DX取最高位,商只有一位 PUSHDX護(hù)DX ADDDL,30H MOVAH,02H INT21H;顯示最高位 POPDX MOVALQH ANDAX,00FFH將余數(shù)位清0,以免影響結(jié)果 MOVBL,10 IDIVBL MOVDX,AX
12、 PUSHDX ADDDL,30H MOVAH,02H INT21H;顯示次高位 POPDX MOVDL,DH ADDDL,30H MOVAH,02H INT21H;顯示最低位,若有更高位與上述方法一致MOVDL,2CH;A此處未變 INT21H RET XSXHENDP CODEEND代碼段終止 ENDSTAR源程序終止 流程圖: 改變變量偏移量,改變CX 卜一變量對(duì)比確定是否交換 字符串 -pauhopeshujujilushi 輸出 調(diào)用了程序顯示 最大最小值取出顯示 開始 顯示 yuanshishujujilushi 的字符 設(shè)置循環(huán)初值 了程序 取最高位 依次取出變量顯示 進(jìn)行除法
13、顯示最咼位 調(diào)用子程序 CX=O ? Y 余數(shù)置零 暫存當(dāng)前字變量 顯示次咼位 顯示最低位 去掉最大最小值求平均值并輸出 巳 求 纟終止 三、運(yùn)行結(jié)果 yua nshishujujilushi:300,250,280,240,260, paixuhoudeshujujilushi:240,250,260,280,300, zuixiaozhishi:240, zuidazhishi:300 pingjun zhishi:263 pingjun shudeerji nzhidaimashi:OOOOOOO1OOOOO111 編譯: 鏈接: rrhc COMPAQ Fcrsondi 1 Conpu
14、t eir Lin he r Un T9- ion 2 4H C CCo pi ght CoropAf C ORI MI t e r ion 19B2 # 1 CO t Gopii i i*iiglut M icrosoft Corp? 19B1 1 ObjC C C Ho d u ls l| H QBiJ ) Hun Fi 1c IMP! EXE I : List File INIIL.MAPI : 運(yùn)行結(jié)果: 08060601 meeBi pl xu nou ae sitti ju j 1 Eui x 10 zhl shi?20, EU I da zhi shl = 3HM, ping j
15、un zhi shi z23 Jun sHu de jr jin z rroyFAn t eminated noir VIA 2 四、調(diào)試分析和體會(huì) 用DO命令查看排序前后,內(nèi)存數(shù)據(jù)的變化 在此次編寫程序的過(guò)程中,遇到問(wèn)題主要是由于對(duì)冒泡法的不熟悉,在編寫程序的過(guò)程中進(jìn)度較慢,參照看書上的冒泡法,但是在之后遇到的問(wèn)題便是在編譯出錯(cuò)好多時(shí),需要逐漸地借助DEBUG:具以及自己的檢查來(lái)找出錯(cuò)誤,這個(gè)過(guò)程對(duì)比艱苦。 錯(cuò)誤主要出現(xiàn)在: 由于此次的程序較長(zhǎng),在進(jìn)行跳轉(zhuǎn)的時(shí)候弄錯(cuò)跳轉(zhuǎn)的地方,而每次檢查又對(duì)比的久,主要借助單步調(diào)試來(lái)進(jìn)行檢查。此外在調(diào)用程序的過(guò)程中,對(duì)CALL指令的不熟悉,導(dǎo)致錯(cuò)用誤用。還有就是程序的規(guī)律性思維還是有些混亂,導(dǎo)致程序調(diào)試編寫的過(guò)程對(duì)比艱苦。但結(jié)果還是在不斷地DEBUGS把冒泡的程序理解深入并編寫調(diào)試成功。 自身體會(huì): 規(guī)律思維的訓(xùn)練不是一朝一夕的事情,每次都會(huì)由于規(guī)律思維的不
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 轉(zhuǎn)租加盟合同范本
- 娛樂(lè)活動(dòng)合同履約金保障
- 公用事業(yè)材料采購(gòu)合同
- 抽真空合同范本
- Unit 5 Preparing for the Topic Pronunciation 教學(xué)設(shè)計(jì)- 2024-2025學(xué)年仁愛科普版(2024)七年級(jí)英語(yǔ)上冊(cè)
- 門面轉(zhuǎn)讓租賃合同范本
- 贈(zèng)與車輛合同范本
- 冰柜租賃合同范本
- 第七章第三節(jié)-乙酸乙酯制備實(shí)驗(yàn)的改進(jìn)設(shè)計(jì) 教學(xué)設(shè)計(jì) 2023-2024學(xué)年高一下學(xué)期化學(xué)人教版(2019)必修第二冊(cè)
- 11 衣食住行的變化(教學(xué)設(shè)計(jì))-蘇教版科學(xué)一年級(jí)上冊(cè)
- CentOS 7系統(tǒng)配置與管理(Linux 試題庫(kù)) 習(xí)題答案 (楊海艷 第2版)
- 手機(jī)直連衛(wèi)星的可用頻率分析
- 中國(guó)氫內(nèi)燃機(jī)行業(yè)發(fā)展環(huán)境、市場(chǎng)運(yùn)行格局及前景研究報(bào)告-智研咨詢(2024版)
- 2025年春新人教版歷史七年級(jí)下冊(cè)課件 第16課-明朝的對(duì)外關(guān)系
- 施工單位工程質(zhì)量自評(píng)報(bào)告三篇
- 2025年人教版英語(yǔ)五年級(jí)下冊(cè)教學(xué)進(jìn)度安排表
- 同等學(xué)力英語(yǔ)申碩考試詞匯(第六版大綱)電子版
- 部編四下語(yǔ)文《口語(yǔ)交際:轉(zhuǎn)述》公開課教案教學(xué)設(shè)計(jì)【一等獎(jiǎng)】
- 2023靜脈治療護(hù)理技術(shù)操作標(biāo)準(zhǔn)解讀
- 抗滑樁施工專項(xiàng)方案9
- 生理案例分析
評(píng)論
0/150
提交評(píng)論