資源描述:
《華中科技大學(xué)匯編實驗報告4》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、課程實驗報告課程名稱:匯編語言程序設(shè)計實驗實驗名稱:實驗四子程序的設(shè)計與調(diào)用,模塊化程序設(shè)計實驗時間:2016-4-12,14:00-17:30實驗地點:南一樓804室73號實驗臺指導(dǎo)教師:張勇專業(yè)班級:計算機科學(xué)與技術(shù)201409班學(xué)號:U201414813姓名:唐禮威同組學(xué)生:魯凱報告日期:2016年4月18日原創(chuàng)性聲明?本人鄭重聲明:本報告的內(nèi)容由本人獨立完成,有關(guān)觀點、方法、數(shù)據(jù)和文獻(xiàn)等的引用已經(jīng)在文中指出。除文中已經(jīng)注明引用的內(nèi)容外,本報告不包含任何其他個人或集體已經(jīng)公開發(fā)表的作品或成果,不存在剽竊、抄襲行為。特此聲明!學(xué)生簽名:日期:成績評定實驗完成
2、質(zhì)量得分(70分)(實驗步驟清晰詳細(xì)深入,實驗記錄真實完整等)報告撰寫質(zhì)量得分(30分)(報告規(guī)范、完整、通順、詳實等)總成績(100分)指導(dǎo)教師簽字:????????????????????日期:匯編語言程序設(shè)計實驗報告目錄1實驗?zāi)康呐c要求12實驗內(nèi)容13實驗過程23.1任務(wù)123.1.1設(shè)計思想及存儲單元分配23.1.2流程圖33.1.3源程序43.1.4實驗步驟123.1.5實驗記錄124體會14參考文獻(xiàn)1515匯編語言程序設(shè)計實驗報告實驗?zāi)康呐c要求(1)掌握子程序設(shè)計的方法與技巧,熟悉子程序的參數(shù)傳遞方法和調(diào)用原理;(2)掌握宏指令、模塊化程序的設(shè)計方法
3、;(3)掌握較大規(guī)模程序的合作開發(fā)與調(diào)試方法。1實驗內(nèi)容進(jìn)一步修改與增強實驗二的學(xué)生成績查詢程序的功能,具體要求如下:(1)程序執(zhí)行時首先顯示一個功能菜單:選擇1=錄入學(xué)生姓名和各科考試成績,2=計算平均分,3=成績排序,4=輸出成績單,5=程序退出。提示:由于學(xué)生姓名和成績是通過程序錄入的,因此,定義學(xué)生成績表緩沖區(qū)時,初始值都可以置零。為避免錄入成績的時間過程太長,假定學(xué)生人數(shù)在5人左右,具體人數(shù)自行決定。(2)2人一組,一人負(fù)責(zé)包括菜單顯示、程序退出在內(nèi)的主程序,以及菜單中的功能1和2;另一人負(fù)責(zé)菜單中的功能3和4。各自匯編自己的模塊,然后連接生成一個程序
4、。注意,在每個模塊的開始,注明編寫者的名字以及同組同學(xué)的名字。(3)錄入學(xué)生姓名和各科考試成績時,首先顯示錄入的是第幾個學(xué)生的信息,然后分別在提示之后輸入姓名和各科成績(可以借鑒書上十進(jìn)制轉(zhuǎn)二進(jìn)制的子程序F10T2)。所有學(xué)生信息錄入完畢后回到菜單顯示的位置。姓名及考試成績的存放、平均分的計算,按照實驗二的要求。(4)排序的基本要求是按照平均成績從高到低排序,也可以考慮按照指定課程的成績排序。輸出成績單的基本要求是按照排序的結(jié)果依次顯示每個學(xué)生的姓名和平均成績,也可以考慮按照指定課程、指定進(jìn)制的形式顯示(可以借鑒書上二進(jìn)制轉(zhuǎn)十進(jìn)制的子程序F2T10)。提示:可以
5、采用一個一維數(shù)組記錄每個學(xué)生成績的排序名次,這樣就可以避免在排序算法里交換成績表中的具體信息了。(5)將9號和10號DOS系統(tǒng)功能調(diào)用定義成宏指令并調(diào)用。上述任務(wù)中,重要操作環(huán)節(jié)(納入到學(xué)生自己寫的實驗步驟中)提示:本次實驗中需要學(xué)生嘗試體會的操作可分為以下幾種:1.15匯編語言程序設(shè)計實驗報告在TD中跟蹤到子程序內(nèi)部有幾種方法?在TD中觀察子程序調(diào)用和返回時堆棧的變化。1.注意觀察FAR、NEAR類型子程序的RET指令的機器碼有何不同?觀察FAR類型子程序被調(diào)用時堆棧的變化情況。2.通過把一個模塊拆成多個模塊或反之,體會子程序和模塊化程序設(shè)計的方法,體會模塊調(diào)
6、用關(guān)系圖、子程序功能說明、輸入/輸出說明在程序設(shè)計中的作用。3.觀察不同模塊的可合并段合并后變量偏移地址的變化情況。觀察不同段在內(nèi)存里的放置次序。體會模塊間段的定義及其對應(yīng)的裝配方法。4.在編程中使用不同的子程序參數(shù)傳遞方法來編寫同一個子程序。5.觀察模塊間的參數(shù)的傳遞方法,包括公共符號的定義和外部符號的引用,若符號名不一致或類型不一致會有什么現(xiàn)象發(fā)生?6.通過TD觀察宏指令在執(zhí)行程序中的替換和擴(kuò)展,解釋宏和子程序的調(diào)用有何不同。7.如何使菜單和成績單顯示得更漂亮一點?1實驗過程1.1任務(wù)11.1.1設(shè)計思想及存儲單元分配任務(wù)主要是實現(xiàn)主菜單和功能一、功能二。主
7、菜單很簡單,就是重復(fù)多次使用9號調(diào)用輸出菜單欄,然后1號調(diào)用輸入1、2、3、4、5,選擇要實現(xiàn)的功能。子程序1:寄存器分配:CL:輸入姓名字符串長度CH:計數(shù):每個學(xué)生3次輸入成績SI:循環(huán)錄入姓名和成績時SI每+1實現(xiàn)BUF段14個字節(jié)的跳躍BX:計數(shù):+1在INPUT_N和INPUT_S和BUF段中實現(xiàn)后移AX:存放姓名的字符和成績的字符DX:在將輸入成績字符轉(zhuǎn)換為實際成績時存放成績子程序2:寄存器分配:BX:+1實現(xiàn)尋找成績所在的字節(jié)SI:每+1實現(xiàn)一個學(xué)生到另一個學(xué)生的跳躍AX:存放3門課相加后的成績CX:CL:3門課成績CX:4個學(xué)生15匯編語言程序設(shè)
8、計實驗報告1.1.1流程