匯編語言字符圖形程序課程設計報告_第1頁
匯編語言字符圖形程序課程設計報告_第2頁
匯編語言字符圖形程序課程設計報告_第3頁
匯編語言字符圖形程序課程設計報告_第4頁
匯編語言字符圖形程序課程設計報告_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

課程設計說明書題目:字符圖形程序院系:專業(yè)班級:號:學學生姓名:指導教師:2010年12月31日精品安徽理工大學課程設計(論文)任務書計算機科學與工程學院硬件教研室學號題目一:判斷閏年題目二:簡單計算器題目三:代碼轉換程序題目四:字符圖形程序√題目五:學生成績管理題目六:打字練習設計題目(注:請在自己選做的題目后打√)設計技術參數(shù)1.熟悉匯編指令、宏匯編語言的編程方法2.BIOS中斷調用、系統(tǒng)功能中斷調用方法3.磁盤文件、及文件內容操作題目的選擇是根據匯編語言的特點主要針對系統(tǒng)內部的一些中斷調用、系統(tǒng)功能調用、系統(tǒng)數(shù)據處理、文件數(shù)據處理而設計的,是對所學課程知識較為系統(tǒng)的應用。由于匯編語言編程相對其他語言編程比較復雜,因此,在設計上應把重點放在程序的功能實現(xiàn)上,不要太在意程序的結構和顯示界面的設計。不要局限于題目所規(guī)定的要求,可以靈活裁減,設計出功能更完善的程序。設計要求另外,也可以自己設計題目,同時,提出詳細的功能描述,經指導老師審查同意后也可作為課程設計的題目。工作量課程設計說明書1000字(不包括程序源代碼)左右。工作計劃第1次熟悉軟件環(huán)境。第2次繪制程序流程圖。第3次用編寫程序。第4次用調試運行程序。第5次編寫課程設計說明書精品[1]李敬兆.《8086/8088和arm核匯編語言程序設計》.合肥:中國科技大學出版社清華大學出版社出版[3]沈美明,溫冬嬋,張赤紅編著.《IBM—PC匯編語言程序設計實驗教程》.北京:清華大學出版社出版參考資料年月日安徽理工大學課程設計(論文)成績評定表精品年月日精品摘要精品目錄1設計目的.........................................................................................................................12概要設計.........................................................................................................................2系統(tǒng)總體分析223詳細設計.........................................................................................................................3主模塊及子模塊說明344程序調試.......................................................................................................................11運行界面分析5心得體會.......................................................................................................................15參考文獻..........................................................................................................................16精品安徽理工大學課程設計(論文)1設計目的深入了解利用匯編指令是如何實現(xiàn)對存儲器及寄存器訪問的,并在此基礎上學會用匯編指令、偽指令、BIOS中斷調用、DOS中斷調用及子程序等實現(xiàn)相應的功能。字符圖形程序設計的重點在于加強學生對BIOS中斷10斷調用給匯編程序帶來的方便。通過編寫匯編語言,實現(xiàn)字符圖形的顯示,讓學生加深了對匯編程序理論課程的理解,更加了解匯編語言的應用,并且能夠按要求編寫程序,從而提高學生的匯編語言知識,更進一步地了解了匯編語言,通過本次設計,可以讓學生深刻體會到中斷調用的功能。精品安徽理工大學課程設計(論文)2概要設計2.1系統(tǒng)總體分析表里。字符圖形表包括每個字符的ASCⅡ碼、屬性以及在顯示圖形中的相對位移量(相對位移量是指前一個字符和當前要顯示的字符之間的行距和列距)四個參數(shù)組成。字符圖形表中的第一個字節(jié)“89”是組成圖形的字符數(shù),編寫程序需要將每個字符的ASCⅡ碼和屬性以及顯示的位置放入相應的寄存器中,然后發(fā)出顯示命令,當89個字符都顯示出來后,我們就可以看到兩個“字”的圖形。為了清晰地看到每一個字,需要延時,程序中編寫了延時子程序。此外,程序中還有清屏子程序和移動子程序,通過適當改變延時時間,甚至可以實現(xiàn)圖形的移動。2.2主模塊框圖及說明該程序的主模塊圖如圖2-1:圖2-1主模塊框架圖精品安徽理工大學課程設計(論文)3詳細設計3.1主模塊及子模塊說明主模塊是一個主程序,在這個程序中首先設置顯示方式、背景顏色、調色板,然后調用清屏子程序clear_screen,為接下來的圖形顯示做好準備,然后設置好初始行列坐標后,再調用移動子程序move_shape來顯示字符,然后調用int21h的7h號中斷功能,使得從鍵盤輸入q字符時,退出程序運行。第一個子模塊是clear_screen為功能實現(xiàn)部分。精品安徽理工大學課程設計(論文)3.2各模塊詳細設計3.2.1主模塊的設計主程序是整個程序的主干部分,在里面為字符的顯示做了準備,然后調用移動子程序來實現(xiàn)字符顯示的功能。流程圖如圖3-1:NY圖精品安徽理工大學課程設計(論文)程序代碼以及分析如下:mainprocfarpushdssubax,axpushaxmovmovmovmovax,datads,axah,0al,080*25單色字符顯示方式int10h;movmovmovah,0bhbh,0;bl,2;int10h;movmovmovah,0bhbh,01bl,00int10hcallclear_screenleadi,carmovmovdh,510行第2行位置開始dl,15callmove_shapemovah,1int21hcmpal,'q'jzexitmainendp精品安徽理工大學課程設計(論文)3.2.2子模塊的設計1.清屏子程序的設計清屏子程序是把屏幕清成同一種顏色,為字符圖形的顯示做準備。其流程圖如圖3-2:圖程序代碼如下:clear_screenprocnearpushax;保護寄存器pushbxpushcxpushdxmovah,6moval,0;movch,0movcl,0movdh,120movdl,200movbh,7int10h;屏幕上卷功能;左上角行號;左上角列號;右下角行號;右下角列號;卷入行屬性;調用顯示功能;恢復寄存器popdx精品安徽理工大學課程設計(論文)popcxpopbxpopaxret;返回主程序2.移動子程序設計此子程序最為重要,因為它是實現(xiàn)功能的主要部分,在其中用到了BIOS的顯示輸出管理int10h的0f號和9循環(huán)控制使得89個字符圖形依次輸出,排列成為事先設計好的子。其程序流程圖3-3:否是精品安徽理工大學課程設計(論文)圖程序代碼如下:move_shapeprocnearpushaxpushbxpushcxpushdxpushdimovah,0fhint10h;讀取顯示器的模式subch,chmovcl,[di]incdi;清除寄存器cx的高字節(jié);cl存放循環(huán)次數(shù);di指向字符表的第一個字符mov_crsr:adddh,[di+2];adddl,[di+3]movah,2int10h;移動光標位置;取字符及屬性;顯示字符moval,[di]movbl,[di+1]pushcxmovcx,1movah,09int10hpopcxadddi,4;di指向下一個字符loopmov_crsrpopdipopdxpopcx精品安徽理工大學課程設計(論文)popbxpopaxretmove_shapeendp3.2.3程序詳細分析在調用中斷的時候,中斷的功能號總是置于AH寄存器中。同時,為了實現(xiàn)相應的功能,應該在調用中斷之前將相應的入口參數(shù)放于默認的寄存器中。本次實驗中,所用到的BIOS中斷有以下幾種:在主程序設計之初對顯示模式的定義利用了其中的0號功能現(xiàn)對它的描述如下:功能號:00H功能:設置顯示模式入口參數(shù):AH=00HAL=顯示模式顯示模式的列表為:顯示模式顯示模式屬性00H01H02H03H...40*2516色文本40*2516色文本80*25單色字符顯示方式4色彩色字符顯示方式程序中,我將AL的值設為02表示在圖形顯示時,我所采用的模式是80*25的單色文本字符顯示模式。在清屏子程序中,調用的中斷有:精品安徽理工大學課程設計(論文)功能號:06H功能:初始化屏幕或滾屏入口參數(shù):AH=06H——向上滾屏AL=滾動的函數(shù)BH=空白區(qū)域的缺省(CH、CL)=窗口的左上角位置(Y坐標,X坐標)(DH、DL)=窗口的左上角位置(Y坐標,X坐標)出口參數(shù):無利用該功能,設置AL的值為0(清窗口),BH的值為7即00000111,設置空白區(qū)域的屬域之內。AH=06/07都可以起到清屏的作用,不同的是,前者是向上滾屏,后者是向下滾屏,即06H表示清屏時從下向上清理,07H表示清屏時從上向下清理。在畫圖子程序中用到的BIOS的10號中斷:功能號:0FH功能:讀取顯示器模式入口參數(shù):AH=0FH出口參數(shù):AH=屏幕字符的列數(shù)AL=顯示模式(參見功能00H中的說明)BH=頁碼功能號:02H功能:用文本坐標下設置光標位置入口參數(shù):AH=02H精品安徽理工大學課程設計(論文)BH=顯示頁碼DH=行(Y坐標)DL=列(X坐標)出口參數(shù):無功能號:09H功能:在當前光標處按指定屬性顯示字符入口參數(shù):AH=09HAL=字符BH=顯示頁碼BL=屬性(文本模式)或顏色(圖形模式)CX=重復輸出字符的次數(shù)出口參數(shù):無2有設定好了光標的位置,才能顯示對應的字符,最終通過不斷的循環(huán)調用(LOOP得到效果圖后,返回到主程序,主程序通過鍵盤的輸入,判定是否返回DOS界面。首先判定輸入的字符是否為Q,若不是則再判定輸入的字符是不是q,若都不是怎什么也不做,若是其中的一個值則返回DOS界面中。精品安徽理工大學課程設計(論文)4程序調試4.1運行界面分析運用MASM集成環(huán)境下,輸入程序后,直接運行就可以顯示出結果。在此簡單介紹一下MASM集成實驗環(huán)境軟件。MASM動定位、編譯、連接、運行等功能,可以實現(xiàn)匯編程序的開發(fā)、糾錯、運行等。但是因為我使用的是Windows7,有些地方不兼容MASM,全屏顯示就不行。所以我改動了程序的顯示方式。本程序我所使用的運行界面為DEBUG,如圖4-1所示:圖利用DEBUG文件經編譯鏈接后產生的.EXE文件的目錄下,利用命令debugxx.exe即可對目標文件進行匯編、反匯編等操作,DEBUG作為調試程序有很多的指令,該此程序設計我所用到的主要是反匯編命令U、運行指令G以及退出指令Q。U(Unassemble)對指令進行反匯編,后可帶參數(shù)也可不帶。指令的地址以十六進U命令從某一指定的位置精品安徽理工大學課程設計(論文)開始反匯編。如果不加參數(shù),將顯示至屏幕滿為止。它的默認段地址包含于CS寄存器中。G(go)也稱轉移命令,加參數(shù)時用來執(zhí)行正在調試的程序,當執(zhí)行到指定的地址時停止,并顯示寄存器和下一條要執(zhí)行的命令。不加參數(shù)時,用于執(zhí)行正在調試的沒有terminatednormally”本次設計運用的就是不帶參數(shù)的GO命令來執(zhí)行程序。DEBUG除了能夠匯編程序外,還可以用來檢查和修改內存位置,載入存儲和執(zhí)行程序、以及檢查和修改寄存器。總的來說,DEBUG對于匯編的初學者絕對是強有力的工具。4.2算法的分析本程序功能的實現(xiàn)主要靠字符圖形表的定義和一個循環(huán)來完成,在字符圖形表里存入字符的個數(shù)以及每個元素的屬性,然后通過循環(huán),分別顯示每一個字符的形狀以及屬di個元素,循環(huán)完畢,字符也顯示完畢,最后完成了圖像的顯示。4.3調試過程及分析(1)編輯源程序,如圖4-2所示:精品安徽理工大學課程設計(論文)圖(2)保存程序,如圖4-3所示:圖(3)編譯程序,如圖4-4所示:精品安徽理工大學課程設計(論文)圖(4)鏈接程序,如圖4-5所示:圖精品安徽理工大學課程設計(論文)(5)運行程序,如圖4-6所示:圖(6)程序運行結果,如圖4-7所示:圖精品安徽理工大學課程設計(論文)精品安徽理工大學課程設計(論文)5心得體會5.1設計體會器,寄存器的內容進行處理,而這次字符圖形顯示??粗蠋熃o的提示,我也不是很明碰到過關于定義列表的東西啊?帶著這些疑問,我先是問了老師,老師說用很多個字符有了一個大概的框架,了解了程序設計的目的,我著手就容易多。利用網絡資源我搜到了一個

溫馨提示

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

評論

0/150

提交評論