匯編綜合實(shí)驗(yàn)_第1頁(yè)
匯編綜合實(shí)驗(yàn)_第2頁(yè)
匯編綜合實(shí)驗(yàn)_第3頁(yè)
匯編綜合實(shí)驗(yàn)_第4頁(yè)
匯編綜合實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí) 驗(yàn) 報(bào) 告匯 編 語(yǔ) 言 至 第 1 計(jì)算機(jī)學(xué)院制華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)報(bào)告須知1、 學(xué)生上交實(shí)驗(yàn)報(bào)告時(shí),必須為打印稿(A4 紙)。頁(yè)面空間不夠,可以順延。2、 學(xué)生應(yīng)該填寫的內(nèi)容包括:封面相關(guān)欄目、實(shí)驗(yàn)地點(diǎn)、時(shí)間、目的、設(shè)備環(huán)境、內(nèi)容、結(jié)果及分析等。3、 教師應(yīng)該填寫的內(nèi)容包括:實(shí)驗(yàn)成績(jī)、教師評(píng)價(jià)等。4、 教師根據(jù)本課程的綜合性實(shí)驗(yàn)指導(dǎo)單中實(shí)驗(yàn)內(nèi)容的要求,評(píng)定學(xué)生的綜合性實(shí)驗(yàn)成績(jī);要求在該課程期末考試前將實(shí)驗(yàn)報(bào)告交給任課教師。綜合性實(shí)驗(yàn)中,所涉及的程序,文檔等在交實(shí)驗(yàn)報(bào)告前,拷貝給任課教師。任課教師統(tǒng)一刻錄成光盤,與該課程的期末考試成績(jī)一同上交到系里存檔。5、 未盡事宜,請(qǐng)參考該

2、課程的實(shí)驗(yàn)大綱和教學(xué)大綱。第 1 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告 匯 編 語(yǔ) 編制一程序,要求接收從鍵盤輸入的一個(gè)班的學(xué)生姓名、成績(jī)和學(xué)號(hào),對(duì)學(xué)生的成績(jī)進(jìn)行排序,再按學(xué)號(hào)順序和學(xué)生名次順序分別把學(xué)生成績(jī)、姓名、學(xué)號(hào)顯示出來(lái)。1 8 INPUT_DATA 數(shù)據(jù)輸入,COPY 數(shù)據(jù)轉(zhuǎn)存,CHANGE 十進(jìn)制數(shù) ASCII 碼轉(zhuǎn)換為二進(jìn)制,SPLACE 保存名次,MAOPAO_ID 學(xué)號(hào)ID 冒泡升序排列,MAOPAO_SCORE 成績(jī) SCORE 冒泡降序排列,MENU 菜單選擇,OUTPUT 輸出顯示。下面具體他介紹每個(gè)功能是如何實(shí)現(xiàn)的。結(jié)束第 2 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告3子程序 INPUT

3、_DATA數(shù)據(jù)輸入。首先用變量 P控制輸入的人數(shù),本程序 P=3。然后三次調(diào)用宏 INPUT MACRO A,B。最后調(diào)用子程序 COPY保存。關(guān)鍵代碼和程序框架圖如下:YN第 3 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告4子程序 COPY數(shù)據(jù)轉(zhuǎn)存。用BUFNAME作為輸入姓名的緩存區(qū),用BUFID作為輸入學(xué)號(hào)緩存區(qū),用BUFSCORE作為輸入成績(jī)的緩存區(qū)。然后用串傳送指令將所有人的姓名,學(xué)號(hào),成績(jī)轉(zhuǎn)存到 SNAME,ID,SCORE和程序框架圖如下:MOVSS BUFSCORE,SCORE,S,CONT3LEA SI,BUFSCORE+1CALL CHANGE;十進(jìn)制ASCII碼轉(zhuǎn)換成二進(jìn)制保存;臨時(shí)數(shù)

4、TMP存入學(xué)號(hào)SSCORE中MOV AX,TMP5子程序 CHANGE十進(jìn)制 ASCII轉(zhuǎn)換為二進(jìn)制。首先判斷輸入的每一位上的數(shù)是不是 19 ANDAX,000FH去掉 ASCII TMP第 4 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告MOV AL,SI+1CMP AL,30HJB EXIT1AND AX,000FHXCHG AX,TMPMOV DX,10第 5 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告6子程序 SPLACE保存名次。這個(gè)比較簡(jiǎn)單,就是調(diào)用子程序 MAOPAO_SCORE對(duì)成績(jī)進(jìn)行冒泡排序,然后依次保存名次就可以了。關(guān)鍵代碼和程序框架圖如下:N;對(duì)成績(jī)SSCORE進(jìn)行冒泡降序排列Y碼MOV AX,DI

5、MOV BL,CIXUDIMOV SI,BXINC AXMOV PLACESI,ALINC DIN第 6 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告 7:子程序 MAOPAO_ID-學(xué)號(hào) ID冒泡升序排列和子程序 MAOPAO_SCORE-成績(jī) SCORE冒泡降序排列。先確定冒泡外循環(huán)的次數(shù),然后進(jìn)入內(nèi)循環(huán),第一個(gè)數(shù)與下一個(gè)數(shù)比較,若大于,則交換兩數(shù),交換對(duì)應(yīng)標(biāo)號(hào)的成績(jī)排序列和次序,繼續(xù)進(jìn)行循環(huán)比較;否則直接進(jìn)行下一次比較。 CIXU中的輸入的次序號(hào)也一 SNAME和 ID ID也是;);CX存入棧中,保存外循環(huán)NMOV AX,SSCORESIXCHG SSCORESI+5,AXMOV SSCORESI,A

6、X;/交換對(duì)應(yīng)標(biāo)號(hào)的成績(jī)排序列;從棧中彈出到CX,繼續(xù)外循環(huán)第 7 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告NYI=I+1NNY第 8 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告8子程序 MENU菜單選擇。首先跳出提示語(yǔ),然后用1號(hào)功能接收用戶的選擇。如果用戶輸入 1,則調(diào)用子程序MAOPAO_ID對(duì)學(xué)號(hào)進(jìn)行冒泡升序排列并輸出;如果用戶輸入2,則調(diào)用子程序 MAOPAO_SCORE對(duì)成績(jī)進(jìn)行冒泡降序排列并輸出;如果輸入 ESC,則推出;如果輸入的是;判斷AL=1,若等于,轉(zhuǎn)到 LET1;判斷AL=2,若等于,轉(zhuǎn)到 LET2;判斷AL=ESC,若等于,轉(zhuǎn)到 EXIT;對(duì)學(xué)號(hào)SID進(jìn)行冒泡升序排列CALL MAOPAO_S

7、COREJMP LET0LET0:;對(duì)成績(jī)SSCORE進(jìn)行冒泡降序排列;回車換行;顯示提示語(yǔ)4;輸出顯示9子程序 OUTPUT顯示輸出。這里主要要到宏OUTPUT_DATA,宏 OUTPUT_DATA的方法主要是,從 CIXU中取出次序號(hào)作為位移量,然后在子程序調(diào)用宏時(shí)分三次調(diào)用,用實(shí)元代替啞元,分別從 SNAMEIDSCORE中取出姓名和對(duì)應(yīng)的學(xué)號(hào),成績(jī),然后用9號(hào)功能輸出。關(guān)鍵代碼和程序框圖如下:OUTPUT PROCMOV CX,P第 9 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告MOV AX,30HMOV AL,CIXUSIDEC AL;位置-1 地址從0開始;MOV DL,PLACEDIADD D

8、L,30HMOV AH,2;計(jì)數(shù)器+1 取下一個(gè)數(shù)據(jù)OUTPUT ENDP第 10 頁(yè)華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告 = NY10 運(yùn)行結(jié)果:華北科技學(xué)院綜合性實(shí)驗(yàn)報(bào)告11 感想和體會(huì):首先我必須承認(rèn),這個(gè)程序大部分不是自己寫的,我只是對(duì)其增加了菜單的功能和做單的修改。而且關(guān)于對(duì)字符串的處理和輸出時(shí)界面的控制我還是有點(diǎn)搞不清楚,需要課后繼續(xù)花時(shí)間學(xué)習(xí)有關(guān)匯編的知識(shí),使自己更熟練各種寄存器的使用。但是通過(guò)這次匯編程序,我還是學(xué)到了許多東西,為后面的匯編課程設(shè)計(jì)奠定了基礎(chǔ)。對(duì)于后面的匯編課程設(shè)計(jì),我也有信心做得更好。最大的體會(huì)有三個(gè):其一,匯編語(yǔ)言相對(duì)于其他編程語(yǔ)言,確實(shí)難度有點(diǎn)大。之所以初學(xué)者覺得它難,是因?yàn)閰R編語(yǔ)言是直接在硬件之上工作的編程語(yǔ)言,即它是實(shí)現(xiàn)在 CPU 的寄存器級(jí)上進(jìn)行控制和操作。它不像 JAVA 或者其他編程語(yǔ)言是從人們的日常思維出發(fā)編程,所以我們初學(xué)時(shí)覺得有點(diǎn)難度。其二,我體會(huì)到了宏匯編與子程序的區(qū)別,特別是宏的好處。雖然宏和子程序都可以作為一個(gè)獨(dú)立的功能程序讓其他程序多次調(diào)用。但是對(duì)于子程序而言,每次調(diào)用均需要保存斷點(diǎn)和現(xiàn)場(chǎng),傳參時(shí)要占用寄存器或者存儲(chǔ)器,調(diào)用和返回都要對(duì)堆棧指針做修改,稍有不慎就會(huì)錯(cuò)誤,顯得麻煩。然而宏指令利用啞元和實(shí)元進(jìn)行參數(shù)傳遞,宏調(diào)用的時(shí)候用實(shí)元取代啞元,這樣就進(jìn)一步簡(jiǎn)化了程序結(jié)構(gòu),增強(qiáng)了程序可讀性,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論