下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
《匯編語言程序設計》上機實驗一、設計課題名稱及要求本次上機實驗一共有三項的內(nèi)容及要求如下:1、在屏幕上開出三個窗口:用“”和“”鍵選擇左窗口或右窗口為當前活動窗口,從鍵盤輸入字符,字符就會從當前活動窗口的最下行開始顯示,同時也在下窗口顯示。當一行字符顯示滿后(左右窗口一行顯示20個字符,下窗口顯示50個字符),窗口自動向上卷動一行,輸入的字符仍顯示于最低一行,窗口最高一行向上卷動后消失,按ESC鍵程序運行結束。2、用遞歸的方法求斐波那契數(shù)的第24項(N=24),并將結果用十進制顯示出來(要求:顯示用宏實現(xiàn))。斐波那契函數(shù)FIB(N)的定義為:程序輸出FIB(24)的值。3、請編制程序PROG1.ASM,其功能是:內(nèi)存中連續(xù)存放著16個十六位二進制數(shù),在原16個數(shù)的第4和第5個數(shù)之間插入00FFH,在原16個數(shù)的第8和第9個數(shù)之間插入FF00H,在原16個數(shù)的第12和第13個數(shù)之間插入55AAH,在原16個數(shù)的最后加入AA55H。將按上述方法插入4個數(shù)后得到的20個數(shù)存入內(nèi)存中。例如:內(nèi)存中有1020H,2002H,3033H,4440H,5008H,…,8FF8H(共16個字)結果為1020H,2002H,3033H,4440H,00FFH,5008H,…,8FF8H,AA55H(共20個字)二、設計思想和實施方案論述課題1:因為教學書中有功能類似程序(例9.13),所以在設計第一個程序中,大部分的想法還是模仿該例題。但與例題不同之處是,這個程序要實現(xiàn)同時兩個窗口的字符輸出。也就是說光標位的記錄將會比例題中一個窗口的復雜很多。在程序設計的過程中,可以先調(diào)試一個窗口的輸出,并能完成上卷功能;再到兩個窗口左右分布,并能根據(jù)左右鍵的輸入改變光標位,進行輸入操作;最后完成三個窗口的功能。課題2:利用遞歸算法,將程序功能實現(xiàn)。由于可能會出現(xiàn)數(shù)據(jù)溢出,所以直接使用EAX的操作將能避免溢出的情況。課題3:插入操作可以有很多種方法實現(xiàn),由于程序要求中沒有嚴格規(guī)定,所以我使用的是增加一個數(shù)列的空間,將數(shù)據(jù)依次填入該空間內(nèi)。以空間的開銷,換取運算時間上的優(yōu)勢。三、課程設計中遇到的問題及解決方法在編寫第一個三窗口顯示這個程序過程中就遇到了不少麻煩!一開始,就碰到了在做程序前沒有學過的顯示I/O,雖然課上老師反復重復著:“其實這三道題目里面,最簡單的是第一題!”但是當自己實際操作時,感覺并不是那么容易。經(jīng)過一段時間的思考和審題后,決定先從第三項課題下手,再是第二項,最后再做第一項。在做第三個程序的過程中發(fā)現(xiàn)雖然在插入操作中并沒有遇到太多問題,但是總是不能查看結果,要看結果,還非得debug-t到結束再用-d命令,查看內(nèi)存中的數(shù)據(jù)結果,于是多花了一點時間,在程序的末尾加了一段COMVERTHEXTOASCⅡ,終于自我較為滿意地完成了TASK3。第二個程序的編寫遇到了子程序自身遞歸調(diào)用邊界問題,經(jīng)常是雖然編譯工具沒有檢查出錯誤,但是不能編譯、不能產(chǎn)生目標文件,后來經(jīng)過不斷的debug-t發(fā)現(xiàn)有運算邊界上的錯誤,導致死循環(huán),所以不能生成目標文件。在經(jīng)過了前兩個程序的考驗后,再來做這個大部分人都望而生畏的TASK1。我在后來的課程學習過程中也慢慢了解了不少顯示I/O操作,并在教材中發(fā)現(xiàn)了一個與這項課程有著極其相似的小程序。敲入代碼后,卻仍然不能運行,后來發(fā)現(xiàn)主要是INCLUDE這出了問題。于是把CLS.INC中的代碼當作子程序加到該程序后面,問題解決。在運行書中例題的時候我發(fā)現(xiàn)一處BUG——當我輸入的是“ENTER”的時候,光標會換到下一行,并且是0光標位,繼續(xù)輸入,是在那個光標之后直至一行小窗口的字符數(shù)后(即例題中的20)才能回到原小窗口。我認為是MOVAH,1INT21H這里出的問題,直接輸出鍵盤字符,會導致上述的問題出現(xiàn),于是改用movah,0ah;movbh,0movcx,1int10h替代之前的MOVAH,1INT21H經(jīng)過調(diào)試,果然解決了這個BUG。再后來的兩窗口,三窗口輸出過程中,唯一困擾到我的就是光標的移動問題,需要的是不斷的調(diào)試修改。后來再仔細想了一想,其實光標的操作并不難。一口氣將它解決~!四、收獲與體會通過這次的課程設計,我了解到,一些細節(jié)對于編程的認識相當重要的,其一:良好的文檔習慣,良好的文檔是正規(guī)研發(fā)流程中非常重要的環(huán)節(jié),作為代碼程序員,大部分的時間都是用來寫代碼寫文檔的。要是缺乏良好的文檔管理習慣,一個軟件系統(tǒng)就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。其二,在這次的課程設計中,我還了解到程序的模塊化設計的重要性。當一個較大的程序任務放在你面前的時候,如果能把這一項任務很好的分成幾部分模塊,就能大大減少任務的困難程度,縮減程序開發(fā)時間,同時,一些重復性工作就成了完全可以避免的了。再者,良好的測試能力。這分為兩方面,一,在寫完程序之后,經(jīng)常會遇到各種我們預期之外的結果情況,在這種時候就需要程序員不斷的反復調(diào)試,修改程序代碼,最終得到預期結果。第二方面,是程序在非正常輸入的時候的解決能力(也就是上數(shù)據(jù)結構時,老師說的程序的健壯性)。最后,就是學習和總結的能力。雖然說在開始編程前,我對任務中TASK1沒有絲毫的解決能力,但是通過后來的學習和查閱資料,最終能夠?qū)⑷蝿蛰^好的完成。因為課程設計的時間較短,程序中仍然有很多不足之處,但在這次的課程設計中,我已經(jīng)學到了很多單純在課堂中沒有學到的東西。五、程序流程圖,程序清單和程序注釋a)課題1程序清
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國高紅外加熱烘道數(shù)據(jù)監(jiān)測研究報告
- 二零二五版外債借款合同模板:科技創(chuàng)新貸款協(xié)議3篇
- 二零二五年度個人果園果樹病蟲害防治與農(nóng)產(chǎn)品質(zhì)量安全協(xié)議4篇
- 二零二五年度跨境貿(mào)易個人貨車租賃服務協(xié)議2篇
- 二零二五年度光伏水電項目工程總承包合同3篇
- 水利工程建設安全生產(chǎn)合同
- 房租合同范本
- 手機租賃協(xié)議
- 二零二五年度園林圍墻施工及景觀設計合同4篇
- 二零二五年度教育培訓機構代理商招生合作合同4篇
- 福建省泉州市晉江市2024-2025學年七年級上學期期末生物學試題(含答案)
- 2025年春新人教版物理八年級下冊課件 第十章 浮力 第4節(jié) 跨學科實踐:制作微型密度計
- 2024-2025學年人教版數(shù)學六年級上冊 期末綜合試卷(含答案)
- 收養(yǎng)能力評分表
- 山東省桓臺第一中學2024-2025學年高一上學期期中考試物理試卷(拓展部)(無答案)
- 中華人民共和國保守國家秘密法實施條例培訓課件
- 管道坡口技術培訓
- 2024年全國統(tǒng)一高考英語試卷(新課標Ⅰ卷)含答案
- 同等學力申碩英語考試高頻詞匯速記匯總
- GB 11887-2012首飾貴金屬純度的規(guī)定及命名方法
- 欠薪強制執(zhí)行申請書
評論
0/150
提交評論