用匯編對學(xué)生-學(xué)號-成績排序_第1頁
用匯編對學(xué)生-學(xué)號-成績排序_第2頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、用匯編對學(xué)生- -學(xué)號- -成績排序華北科技學(xué)院綜合性實驗報告課程名稱匯編語言實驗學(xué)期XXXX 至 XXXX 學(xué)年 第 X 學(xué)期學(xué)生所在系部計算機學(xué)院網(wǎng)絡(luò)工程系年級 XXX專業(yè)班級網(wǎng)絡(luò) XXX 班學(xué)生姓名XXXX學(xué)號 XXXXXXXXXXXXXXX任課教師李冬艷實驗成績計算機學(xué)院制華北科技學(xué)院綜合性實驗報告第1頁匯編語言課程綜合性實驗報告開課實驗室:基礎(chǔ)實驗室二日期:XXXXXXXXXXXXXXXX實驗題目學(xué)生成績排序一、實驗?zāi)康倪M(jìn)行匯編語言程序設(shè)計應(yīng)用的綜合性訓(xùn)練。 綜 合運用匯編語言循環(huán)程序、子程序、宏指令編程方 法,提高匯編語言程序設(shè)計能力的應(yīng)用水平。二、設(shè)備與環(huán)境PC兼容機、Windo

2、ws操作系統(tǒng)、匯編程序masm for windows 2012三、實驗內(nèi)容編制一程序,要求接收從鍵盤輸入的一個班的學(xué)生的學(xué)號、姓名、成績,對學(xué) 生的成績進(jìn)行排序,最后把 學(xué)號、姓名、學(xué)生成績、名次 顯示出來。實驗要求:1.必須畫流程圖。2.本程序涉及匯編語言的多重循環(huán)、子程序及宏, 其中成績輸入、計算學(xué)生 名次、顯示學(xué)生名次都分別用子程序,也可用宏處理。3.要求用菜單選擇。具體要求:輸入序號1是數(shù)據(jù)錄入并輸出(包括姓名、學(xué)號、成績);輸入序號2是排序后的數(shù)據(jù)輸出(包括姓名、學(xué)號、成績、名次);輸入序號3(選做)是可以按學(xué)號查找某學(xué)生,并輸出其成績,選擇 修改或不改成績。注意:所有數(shù)據(jù)錄入必須

3、有合法性判斷。華北科技學(xué)院綜合性實驗報告第2頁四、實驗結(jié)果及分析(一)、程序?qū)崿F(xiàn)的功能。1本程序較為簡單錄入成績,成績間用空格隔開。程序會根據(jù)程序錄入的順序自 動安排學(xué)號并根據(jù)成績由大到小進(jìn)行排序,輸出名次。2.程序自帶報錯功能,提示輸入正確的數(shù)據(jù),使數(shù)據(jù)錄入有合法性判斷。(二)、程序的分析:1、本程序中分別運用了宏,子程序、定義提示符等,來簡化程序,讓程序更 容易的看清楚。1:宏定義的舉例:DISP MACRO STRINGPUSH DXLEA DX,STRINGMOV AH,09HINT 21HPOP DXENDM2:子程序定義的舉例:STORE PROC NEARPUSH BXMOV D

4、I,BH ;(DI目的變址寄存器,用于存放目的緩沖區(qū)的偏移地址)INC DI;偏移地址自加一MOV DI,BLINC DIPOP BXRETSTORE ENDPNEXT PROC NEARPUSFCXPUSH3XPUSFCOUNTMOCX,COUNTLEADI,BUFF;BUFF地址傳送給DIP2: CMPCX,0;比較Cx與0JZ DONE ;結(jié)果為0則轉(zhuǎn)移到DONEINC DI ;DI自加一INC DI ;DI自加一CMP3H,DI華北科技學(xué)院綜合性實驗報告第3頁JA BIGJB SMALLINC DICMFBL,DIJA BIG2INC DIDECCXJMP P2SMALL: INC D

5、IINC DIDECCXJMP P2BIG2: DECDIBIG: PUSFCXMOBX,COUNTMOVCL,02HSHLBX,CL;邏輯左移,最高位數(shù)移入CF,最低位補0MOAX,BUFF+BX-4MOVBUFF+BX,AXMOAX,BUFF+BX-2MOfBUFF+BX+2,AXPOPCXDECCOUNT人數(shù)總和自減一LOOP BIG ;DECDIDECDIDONE:POPCOUNTPOPBXPOPCXRETNEXT ENDP3:提示符定義的舉例:IFERROR PROC NEAR ;檢測輸入是否有錯MOV DH,00HCMP AL, 0JB ERRORCMP AL, 9JA ERROR

6、 ;CF=0且ZF=0轉(zhuǎn)移JMP NO_ERRORERROR: DISP ERRORMOV DH,01HNO_ERROR: RET ;棧頂字單元出棧,其值賦值給IP寄存器,(IP地址指針寄存器) 將棧頂字華北科技學(xué)院綜合性實驗報告第4頁單元保存的便宜地址作為下一條指令的偏移地址IFERROR ENDP華北科技學(xué)院綜合性實驗報告2、程序的設(shè)計:流程圖提示所有數(shù)據(jù)錄入必須有合法性判斷。鍵盤輸入錄入數(shù)據(jù),根據(jù)錄入數(shù)據(jù)滿足以下要求,一是,必須是數(shù)字,二是, 不能為0,小于9,這里是當(dāng)一個數(shù)字為一個來處理的。顯示進(jìn)棧顯示輸入字第4頁-跳轉(zhuǎn)到跳轉(zhuǎn)到74跳 轉(zhuǎn)到顯示 ERRORERROR跳轉(zhuǎn)到一宏定義:宏定

7、義主要用于將字符串進(jìn)棧這一重復(fù)的過程中。結(jié)束程序子程序鍵盤曰華北科技學(xué)院綜合性實驗報告跳轉(zhuǎn)到華北科技學(xué)院綜合性實驗報告華北科技學(xué)院綜合性實驗報告華北科技學(xué)院綜合性實驗報告第6頁華北科技學(xué)院綜合性實驗報告第7頁Press any key to continue三、頭驗心得體會:本學(xué)期開設(shè)了匯編語言這門課程。在課程的最后,我們迎來了匯編大實驗。在本 學(xué)期的學(xué)習(xí)和做綜合實驗的過程中。這學(xué)期通過學(xué)習(xí)匯編程序設(shè)計,是我認(rèn)識到它是計算機語言里的第一個語言它有優(yōu)點也有缺點, 優(yōu)點是它實際上是你計算機處理器實際運行的指令的命令 形式表示法。這意味著你將與處理器的底層打交道,比如寄存器和堆棧,能編寫出 比任何其

8、他語言能實現(xiàn)的快得多的程序。缺點是難學(xué)、語法晦澀、堅持效率,造成 大量額外代碼,移植性:接近零。因為這門語言是為一種單獨的處理器設(shè)計的,根 本沒移植性可言。通過對這程序的制作,使我對匯編語言的基本知識的使用更加熟練,同時也增 加了我對匯編語言的一些認(rèn)識,在作業(yè)完成過程中通過和同學(xué)的交流,也增加了合 作的技巧。通過查閱以下資料也學(xué)到了一些課本上沒有的東西,拓寬了自己的知識 面,增加了學(xué)好匯編語言的信心。這不是第一次用匯編語言來設(shè)計一個小程序,平時做了很多實驗,寫了很多小 程序。但這次是一個綜合的程序,平時的很多程序都用到了。很多子程序的設(shè)計是 固定的,因此可以直接從指導(dǎo)資料中調(diào)用,大多只需要修改

9、幾個參數(shù)就可以,這大 大方便了我們的設(shè)計,為我們節(jié)省了很多的時間。在這次課程設(shè)計中,我真正體會到了合作的重要性,遇到很多問題時,當(dāng)我看書查 資料不能解決時,這是去找同學(xué)討論一下,收獲很大,可以使很多問題迎刃而解, 直到問題最終解決。不可否認(rèn),本程序存在不少缺點和不足,但通過這次課程設(shè)計的卻找出了自己在學(xué) 習(xí)上的不足,對以后的工作也有指導(dǎo)作用。我相信在以后的學(xué)習(xí)中會克服這些不足, 達(dá)到熟練掌握匯編語言的目的!DOSBox 0.74rCpu speed: 3000 cycles(Frameskip 0, Program: DW.INPUT1Z 34RANKGRADES54 Z3060:480706

10、0:4807BELOW;7? 30 67 35GRADE 90B0776767 OO旳O O3 30 08 8O OZ ZG G4 4O O1 16 67 7剛3 35 5別Z Z3 31 1Z ZX華北科技學(xué)院綜合性實驗報告第8頁我對按成績排序這一塊,有點不是很熟悉,在做實驗的時候,卡在了這個環(huán)節(jié)。老 師在上機課的時候,把同學(xué)的代碼拿出來給我講解的時候,自己跟的太慢,還是沒 懂。對于冒泡排序,我在之前的作業(yè)中,用到過,但是,我在本次實驗中,知道具 體該怎么操作,但是對于代碼的寫作,還是不太熟悉。總會在這樣那樣的問題中卡 住。在同學(xué)講解過后,我依舊存在著一些問題,這些問題有些都是書上有的,還有

11、 就是老師在上課舉例的時候,給我們講解的知識點,通過翻書,翻筆記我明白了那 些問題的答案。出現(xiàn)這些問題的原因就在于我上課聽課的認(rèn)真程度,以及下來做實驗不愛自己翻書看看,只是會問問,這樣就導(dǎo)致了我在知識點上面的熟悉程度不夠, 用的時候就記不清楚,導(dǎo)致程序出錯。在老師幫我改過程序之后,我完成了第二個 功能。在第三個功能里面,之前的錄入和比較在第二功能里面都用過,所以寫起來應(yīng)該沒什么問題。但是在我寫完這個功能的時候,運行程序得到的不是準(zhǔn)確的結(jié)果。自 己調(diào)了很久,確定某個地方有問題,但就是找不出來問題在哪里。只能把問題注釋 出來,把代碼發(fā)給老師幫我調(diào)試。在老師花費了不少的時間,斷定代碼的問題在前 面,而不在標(biāo)注的那。果然,老師一次看出了我的問題,就是上課時候老師講的內(nèi) 容,我自己把錯的記下來了,然后導(dǎo)致程序出錯,浪費了老師大量的時間。在本次實驗中,自己在學(xué)習(xí)中存在的冋題很明顯,就是在老師講課的時候,自己 聽課的認(rèn)真程度,和下來在課后有沒有多看看書的這一方面。由于自己的懶惰,讓 這次的實驗也變得難了起來。能在課下多看看書,對自己的幫助是無限大的??偟?來說,在這次的實驗中,我看到了自己

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論