版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
微機原理與接口技術(shù)實驗——冒泡法微機原理與接口技術(shù)實驗——冒泡法微機原理與接口技術(shù)實驗——冒泡法xxx公司微機原理與接口技術(shù)實驗——冒泡法文件編號:文件日期:修訂次數(shù):第1.0次更改批準審核制定方案設計,管理制度實驗內(nèi)容用“冒泡“法對一組數(shù)300,250,280,240,260,按從小到大的順序排列。提示:用冒泡的方法對一組數(shù)據(jù)元素排序,它的基本方法是:將相鄰的兩個元素通過比較進行排序,通過多次,多遍的鄰元素排序,實現(xiàn)整個一組數(shù)的排序。對于5(N)個元素,整個排序通過4遍(=N-1)鄰元素排序完成。每一遍的排序由若干次鄰元素的排序組成。4遍排序中,鄰元素的排序依次為4,3,2,1遍。完成第一遍排序后,最大數(shù)沉底,已經(jīng)到達它應占據(jù)的位置,不需要參加下一遍的排序。外循環(huán)的次數(shù)為CX=4次(N-1),內(nèi)循環(huán)的次數(shù)為4,3,2,1(DECCX)排序遍數(shù)本遍排序前第一次排序后第二次排序后第三次排序后第四次排序后1300,250,280,240,260250,300,280,240,260250,280,300,240,260250,280,240,300,260250,280,240,260,3002250,280,240,260,300250,280,240,260,300250,240,280,260,300250,240,260,280,3003250,240,260,280,300250,240,260,280,300240,250,260,280,3004240,250,260,280,300240,250,260,280,300實驗要求:1.編制程序,對這組數(shù)進行排序,并輸出原數(shù)據(jù)及排序后數(shù)據(jù);2.利用DEBUG調(diào)試工具,用D0(是D零命令)命令,查看排序前后,內(nèi)存數(shù)據(jù)的變化;3.去掉最大和最小的兩個值,求出其余值的平均值,并輸出最大值,最小值和平均值;4.用學過的壓棧PUSH和出棧POP指令,將平均值按位逐個輸出(即輸出263);5將平均值263轉(zhuǎn)化為二進制串,并將這組二進制串輸出。6.所有數(shù)據(jù)輸出前要用字符串的輸出指令,進行輸出提示(如:zuidazhishi:300等),所有數(shù)據(jù)結(jié)果能清晰地顯示在屏幕上。程序清單及流程圖冒泡法:DATASEGMENT;定義數(shù)據(jù)段VARDW300,250,280,240,260;定義待排序的量NEQU$-VAR;占內(nèi)存空間的大小,是次數(shù)的兩倍;因為這是字定義EJDW;給平均值預留存儲空間YSSJDB'yuanshishujujilushi:$';原始數(shù)據(jù)的輸出提示PXHDB0DH,0AH,'paixuhoudeshujujilushi:$';排序后的輸出;提示MAXSDB0DH,0AH,'zuidazhishi:$';最大值輸出提示MINSDB0DH,0AH,'zuixiaozhishi:$';最小值輸出提示EQSDB0DH,0AH,'pingjunzhishi:$';平均值10進制輸出提示EQEDB0DH,0AH,'pingjunshudeerjinzhidaimashi:$';平均值;的二進制數(shù)制的輸出提示DATAENDS;定義堆棧段STACKSEGMENTPARASTACK'STACK'STAPNDW200DUP()STACKENDS;定義代碼段CODE SEGMENTASSUMECS:CODE,DS:DATA,SS:STACK;定義各代碼段,數(shù)據(jù)段,堆棧段;初始化START:MOVAX,DATAMOVDS,AXMOVCX,N-2;原始數(shù)據(jù)顯示MOVDX,OFFSETYSSJ;顯示‘原始數(shù)據(jù)的輸出提示’的字符串,下同MOVAH,9;系統(tǒng)調(diào)用09H號功能,輸出字符串INT21HMOVCX,N;輸出原始數(shù)據(jù)循環(huán)初值MOVDX,10;DX的初始化MOVSI,0;變量的偏移量0,2,4,6,8XSX:MOVAX,VAR[SI];將變量依次取出,逐個顯示CALLXSXH;調(diào)用顯示子程序ADDSI,2;改變變量的偏移量DECCX;改變CX,結(jié)束循環(huán)LOOPXSX;冒泡算法MOVCX,N-2WXH:PUSHCXMOVSI,0NXH:MOVAX,VAR[SI];暫存當前內(nèi)存中的數(shù)據(jù),一個字變量CMPAX,VAR[SI+2];與下一內(nèi)存中的字變量比較JLENXF;如果前一字變量不大于后一字變量,不做交換,;直接修改偏移地址XCHGAX,VAR[SI+2];該項SI值并不改變XCHGAX,VAR[SI];交換,將較大值往后移NXF:ADDSI,2;改變偏移量,將所有數(shù)比較完DECCX;實現(xiàn)內(nèi)層循環(huán)LOOPNXHPOPCX;改變外層循環(huán)次數(shù)DECCX;外層循環(huán)次數(shù)遞減LOOPWXH;排序后的數(shù)據(jù)顯示(同原始數(shù)據(jù)顯示)MOVDX,OFFSETPXH;顯示‘排序后數(shù)據(jù)的輸出提示’的字符串MOVAH,9;字符串顯示INT21HMOVCX,NMOVDX,0MOVSI,0XSH:MOVAX,VAR[SI]CALLXSXH;調(diào)用顯示子程序ADDSI,2DECCXLOOPXSH;最小值輸出顯示MOVDX,OFFSETMINSMOVAH,9INT21HMOVSI,0MOVAX,VAR[SI];最小值是排序后該片內(nèi)存中偏移量為0的數(shù)值CALLXSXH;最大值輸出顯示,最大值的偏移量與定義的類型及個數(shù)有關(guān)MOVDX,OFFSETMAXSMOVAH,9INT21HMOVAX,VAR[SI+8];最大值是該片內(nèi)存中偏移量最大為N-2的值CALLXSXH;求平均值MOVDX,0MOVCX,2;保存求和的個數(shù),此處去掉最大最小值,個數(shù)為;N/2-2MOVSI,2;暫存求和起始偏移量,此處為2,不排最小值MOVAX,VAR[SI]QH:ADDSI,2ADDAX,VAR[SI]LOOPQH;此循環(huán)用來求取排完序后的和MOVBX,3CWD;擴展,求平均值,此處平均值大于255IDIVBX;余數(shù)在DX,商在AXMOVEJ,AX;將平均值(即商)寫入內(nèi)存,備用;使用PUSH,POP功能實現(xiàn)顯示10進制的平均值MOVDX,OFFSETEQSMOVAH,9INT21H;輸出相應提示字符串MOVAX,[EJ];將平均值寫入寄存器,進行處理MOVBL,10;先取最低位IDIVBLMOVDL,AH;余數(shù)在高位,給DX暫存PUSHDX;最低位先壓棧ANDAX,00FFH;將余數(shù)清0,保留商,再次取余IDIVBL;此前為變BL值,再次取余,的次低位MOVDL,AH;將余數(shù)給DL暫存PUSHDX;次低位壓棧MOVDL,AL;此例僅3為,若有更高位,繼續(xù)上述處理PUSHDX;最高位壓棧MOVCX,3;CX存十進制數(shù)的位數(shù)XHSC:POPDXADDDL,30HMOVAH,02HINT21HLOOPXHSC;依次彈出最高位,次高位,最低位,并逐一顯示;將平均值轉(zhuǎn)換為二進制顯出MOVDX,OFFSETEQEMOVAH,9INT21H;輸出相應提示字符串MOVBX,[EJ];將平均值寫入BX寄存器進行處理MOVCX,16;循環(huán)次數(shù),與定義的類型相關(guān),一個字節(jié)8次XHYW:ROLBX,1;循環(huán)左移,依次取最低位MOVDL,BL;數(shù)據(jù)暫存ANDDL,01H;取最低位,其余清0ADDDL,30HMOVAH,02HINT21HLOOPXHYW;依次顯示各位;算法結(jié)束,回歸系統(tǒng)MOVAH,4CHINT21H;顯示子程序僅用于顯示,此處不使用堆棧,XSXHPROCMOVBL,100;這里取最高位,數(shù)值100與位數(shù)有關(guān),若有4位,則為1000IDIVBL;除法,得余數(shù)和商MOVDX,AX;高余低商,故將商給DX,取最高位,商只有一位PUSHDX;保護DXADDDL,30HMOVAH,02HINT21H;顯示最高位POPDXMOVAL,DHANDAX,00FFH;將余數(shù)位清0,以免影響結(jié)果MOVBL,10IDIVBLMOVDX,AXPUSHDXADDDL,30HMOVAH,02HINT21H;顯示次高位POPDXMOVDL,DHADDDL,30HMOVAH,02HINT21H;顯示最低位,若有更高位與上述方法一致MOVDL,2CH;AH此處未變INT21HRETXSXHENDPCODE ENDS;代碼段結(jié)束 END START;源程序結(jié)束流程圖:開始開始顯示yuanshishujujilushi的字符串設置循環(huán)初值依次取出變量顯示改變變量偏移量,改變CX調(diào)用子程序顯示暫存當前字變量與下一變量比較確定是否交換循環(huán)進行變量比較字符串paixuhoudeshujujilushi輸出最大最小值取出顯示去掉最大最小值求平均值并輸出CX=0?NYU子程序取最高位進行除法顯示最高位余數(shù)置零顯示次高位顯示最低位結(jié)束調(diào)用子程序?qū)⑵骄低ㄟ^左移轉(zhuǎn)換為二進制數(shù)輸出結(jié)束運行結(jié)果yuanshishujujilushi:300,250,280,240,260,paixuhoudeshujujilushi:240,250,260,280,300,zuixiao
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省綿陽市梓潼縣2024-2025學年八年級上學期1月期末考試英語試卷(含答案)
- 00157自考管理會計X年4月-X年7月試卷及答案
- 2024版虛擬現(xiàn)實技術(shù)研發(fā)與推廣合同
- 2024年云南省支付清算知識競賽備考試題庫(含答案)
- 福建省南平市九三英華學校高一物理期末試卷含解析
- 2025年度太陽能光伏項目采購合同擔保協(xié)議2篇
- 2024青島購房合同范本:智能家居系統(tǒng)安全監(jiān)控服務協(xié)議3篇
- 2024甲乙雙方關(guān)于物聯(lián)網(wǎng)技術(shù)研發(fā)與應用合同
- 2024幼兒園園長崗位責任與聘用合同3篇
- 2024年全科教案模板(共8篇)
- 河南省鄭州外國語高中-【高二】【上期中】【把握現(xiàn)在 蓄力高三】家長會【課件】
- 2025年中煤電力有限公司招聘筆試參考題庫含答案解析
- 2024-2025學年烏魯木齊市數(shù)學三上期末檢測試題含解析
- 2025年初級經(jīng)濟師之初級經(jīng)濟師基礎知識考試題庫及完整答案【全優(yōu)】
- 建設項目施工現(xiàn)場春節(jié)放假期間的安全管理方案
- 眼科慢病管理新思路
- 劉先生家庭投資理財規(guī)劃方案設計
- 2024年度服裝代言合同:明星代言服裝品牌拍攝廣告協(xié)議
- GB 30254-2024高壓三相籠型異步電動機能效限定值及能效等級
- 非物質(zhì)文化遺產(chǎn)拓印 課件
- 多產(chǎn)權(quán)、多家合用同一建筑物單位消防安全“五個統(tǒng)一”建設標準
評論
0/150
提交評論