微機原理試驗報告_第1頁
微機原理試驗報告_第2頁
微機原理試驗報告_第3頁
微機原理試驗報告_第4頁
微機原理試驗報告_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

本文格式為Word版,下載可任意編輯——微機原理試驗報告一、試驗?zāi)康?/p>

(1)學(xué)習(xí)匯編語言循環(huán)結(jié)構(gòu)語句的特點,重點把握冒泡排序的方法。(2)理解并把握各種指令的功能,編寫完整的匯編源程序。

(3)進一步熟悉DEBUG的調(diào)試命令,運用DEBUG進行調(diào)試匯編語言程序。

二、試驗內(nèi)容及要求

(1)試驗內(nèi)容:從鍵盤輸入五個有符號數(shù),用冒泡排序法將其按從小到大的順序排序。(2)試驗要求:

①編制程序,對這組數(shù)進行排序并輸出原數(shù)據(jù)及排序后的數(shù)據(jù);

②利用DEBUG調(diào)試工具,用D0命令,查看排序前后內(nèi)存數(shù)據(jù)的變化;

③去掉最大值和最小值,求出其余值的平均值,輸出最大值、最小值和平均值;④用壓棧PUSH和出棧POP指令,將平均值按位逐個輸出;⑤將平均值轉(zhuǎn)化為二進制串,并將這組二進制串輸出;⑥所有數(shù)據(jù)輸出前要用字符串的輸出指令進行輸出提醒,所有數(shù)據(jù)結(jié)果能明了顯示。

三、程序流程圖

開始(1)主程序:MAIN

初始化

鍵盤輸入數(shù)據(jù)

調(diào)用INPUT子程序

輸入是否正確是

顯示原始數(shù)據(jù)

調(diào)用OUTPUT子程序

顯示輸入錯誤

顯示冒泡排序后的數(shù)據(jù)調(diào)用SORT子程序調(diào)用OUTPUT子程序顯示最小值Min顯示One子程序顯示最大值Max調(diào)用One子程序顯示其余數(shù)平均值A(chǔ)verage調(diào)用One子程序顯示平均值二進制串Binary調(diào)用One子程序終止(2)冒泡排序子程序:SORT

COUNT1外循環(huán)次數(shù)

COUNT2內(nèi)循環(huán)次數(shù)

i數(shù)組下標(biāo)否是否是否是

進入初始化COUNT1=N-1COUNT2=COUNT1SI=0Ai≥Ai+1Ai與Ai+1兩數(shù)交換SI=SI+2COUNT2=COUNT2-1COUNT2=0?COUNT1=COUNT1-1COUNT2=0?返回四、程序清單

NAMEBUBBLE_SORTDATASEGMENT

ARRAYDW5DUP(?);輸入數(shù)據(jù)的存儲單元COUNTDW5TWODW2

FLAG1DW0;判斷符號標(biāo)志

FLAG2DB0;判斷首位是否為零的標(biāo)志FAULTDW-1;判斷出錯標(biāo)志CRDB0DH,0AH,'$'

STR1DB'PleaseinputfivenumbersseperatedwithspaceandfinishedwithEnter:','$'STR2DB'Theoriginalnumbers:','$'STR3DB'Thesortednumbers:','$'STR4DB'TheMin:','$'STR5DB'TheMax:','$'STR6DB'TheAverage:','$'

STR7DB'Thebinarysystemoftheaverage:','$'STR8DB'Inputerror!Pleaseinputagain!''$'DATAENDS

CODESEGMENTMAINPROCFAR

ASSUMECS:CODE,DS:DATA,ES:DATASTART:PUSHDSANDAX,0PUSHAX

MOVAX,DATAMOVDS,AXLEADX,STR1

MOVAH,09H;9號DOS功能調(diào)用,提醒輸入數(shù)據(jù)INT21H

CALLCRLF;回車換行

REIN:CALLINPUT;調(diào)用INPUT子程序,輸入原始數(shù)據(jù)CMPAX,FAULT;判斷是否出錯,JEREIN;出錯則重新輸入LEADX,STR2

MOVAH,09H;9號DOS功能調(diào)用,提醒輸出原始數(shù)據(jù)INT21H

CALLOUTPUT;調(diào)用OUTPUT子程序,輸出原始數(shù)據(jù)CALLSORT;調(diào)用SORT子程序,進行冒泡排序LEADX,STR3

MOVAH,09H;9號DOS功能調(diào)用,提醒輸出排序后的數(shù)據(jù)INT21H

CALLOUTPUT;調(diào)用OUTPUT子程序,輸出排序后的數(shù)據(jù)

ANDSI,0ANDBX,0

MOVBX,ARRAY[SI];將最小值存入BXLEADX,STR4

MOVAH,09H;9號DOS功能調(diào)用,提醒輸出數(shù)據(jù)的最小值INT21H

CALLONE;調(diào)用ONE子程序,輸出最小值CALLCRLF

LEADX,STR5

MOVAH,09H;9號DOS功能調(diào)用,提醒輸出排序后的最大值INT21H

MOVBX,ARRAY[SI+8];將最大值存入BX

CALLONE;調(diào)用ONE子程序,輸出最大值CALLCRLF

LEADX,STR6

MOVAH,09H;9號DOS功能調(diào)用,提醒輸出平均值INT21HANDDX,0

MOVAX,ARRAY[SI+2];將去掉最大最小值的其余各數(shù)之和存入AXADDAX,ARRAY[SI+4]ADCAX,ARRAY[SI+6]

MOVCX,COUNT;計數(shù)器CX=5DECCX;CX←CX-1DECCX

DIVCX;字除法,余數(shù)存入AX

MOVBX,AX;將余下各數(shù)的平均值存入BX

CALLONE;調(diào)用ONE子程序,輸出去掉最大最小值的其余數(shù)平均值CALLCRLF

LEADX,STR6

MOVAH,09H;9號DOS功能調(diào)用,提醒輸出平均值的二進制串MOVCX,16;16位二進制串,計數(shù)器初始值為16LL1:ANDDX,0DIVTWOPUSHDXLOOPLL1

MOVCX,16LL2:POPDX

ADDDL,30H;將DL中的數(shù)進行ASC

溫馨提示

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

最新文檔

評論

0/150

提交評論