匯編語言字符圖形程序?qū)嶒瀳蟾鎋第1頁
匯編語言字符圖形程序?qū)嶒瀳蟾鎋第2頁
匯編語言字符圖形程序?qū)嶒瀳蟾鎋第3頁
匯編語言字符圖形程序?qū)嶒瀳蟾鎋第4頁
匯編語言字符圖形程序?qū)嶒瀳蟾鎋第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設計說明書題目:字符圖形程序院系: 專業(yè)班級: 學號: 學生姓名: 指導教師: 2010年12安徽理工大學課程設計(論文)任務書計算機科學與工程學院硬件教研室學號學生姓名專業(yè)(班級)設計題目題目一:判斷閏年題目二:簡單計算器題目三:代碼轉(zhuǎn)換程序題目四:字符圖形程序√題目五:學生成績管理題目六:打字練習(注:請在自己選做的題目后打√)設計技術參數(shù)1.熟悉匯編指令、宏匯編語言的編程方法2.BIOS中斷調(diào)用、系統(tǒng)功能中斷調(diào)用方法3.磁盤文件、及文件內(nèi)容操作設計要求題目的選擇是根據(jù)匯編語言的特點主要針對系統(tǒng)內(nèi)部的一些中斷調(diào)用、系統(tǒng)功能調(diào)用、系統(tǒng)數(shù)據(jù)處理、文件數(shù)據(jù)處理而設計的,是對所學課程知識較為系統(tǒng)的應用。由于匯編語言編程相對其他語言編程比較復雜,因此,在設計上應把重點放在程序的功能實現(xiàn)上,不要太在意程序的結構和顯示界面的設計。不要局限于題目所規(guī)定的要求,可以靈活裁減,設計出功能更完善程序。另外,也可以自己設計題目,同時,提出詳細的功能描述,經(jīng)指導老師審查同意后也可作為課程設計的題目。工作量完成所選題目的軟件設計;課程設計說明書1000字(不包括程序源代碼)左右。工作計劃第1次熟悉軟件環(huán)境。第2次繪制程序流程圖。第3次用編寫程序。第4次用調(diào)試運行程序。第5次編寫課程設計說明書參考資料1.李敬兆8086/8088和arm核匯編語言程序設計中國科技大學出版社2.沈美明,溫冬嬋編著IBM—PC匯編語言程序設計(第二版)清華大學出版社出版3.沈美明,溫冬嬋,張赤紅編著IBM—PC匯編語言程序設計實驗教程清華大學出版社出版指導教師簽字教研室主任簽字2010年12月安徽理工大學課程設計(論文)成績評定表指導教師評語:成績:指導教師:年月日摘要本課程設計是通過使用匯編語言來完成的,具體實現(xiàn)的方法可以通過在MASM使用環(huán)境下運行,也可以通過在DOS環(huán)境下完成。我做的課程設計是通過編寫匯編語言程序,實現(xiàn)字符圖形的顯示。元旦即將到來,所以我顯示的字符是“元旦”。在編寫初期,我對字符“元旦”進行了設計,確定了每個字符所在的位置,以便在編寫程序的時候正確定義字符的屬性,也為在顯示的時候能夠顯示較好的效果,打下了基礎。接著開始編寫程序,編寫完程序后,對程序進行了注釋,最后調(diào)試出所要求的字符。本程序可以在DOS環(huán)境和MASM環(huán)境下運行,要求我們熟悉BIOS中斷10的各種功能。整個課程設計的過程,是一個不斷學習、不斷實踐的過程,從而提高了我們的編程能力和程序開發(fā)思想,也提高了我們自主學習的能力。關鍵詞:字符顯示,10號中斷,圖形,BIOSPAGEI目錄TOC\h\z\t"一級標題,1,二級標題,2"1設計目的 12概要設計 22.1系統(tǒng)總體分析 22.2主模塊框圖及說明 23詳細設計 43.1主模塊及子模塊說明 43.2各模塊詳細設計 44.程序調(diào)試 104.1運行界面分析 104.2算法的分析 114.3調(diào)試過程及分析 115心得體會 125.1設計體會 125.2系統(tǒng)改進 12參考文獻 13安徽理工大學課程設計(論文)-1設計目的在課程設計之前,首先要明確設計的目的。本次課程設計的題目是字符圖形顯示,要求我們能夠編寫一個匯編程序,正確的顯示所要求的字符。這就需要我們對匯編指令有一定的了解,通過課程設計,我們能更深入的了解匯編程序的基本框架,更熟練的運用匯編指令。在本課程設計中,還著重運用了BIOS10號中斷調(diào)用及其功能,這就要求我們在這一個小模塊有更深的學習。通過課程設計,可以提高我們的動手能力,培養(yǎng)我們對編程及學習的興趣。通過編寫程序使我們對指令的應用更加熟練。同時,也使我們對masmedit軟件和dos命令有了更多的學習和了解。目的在于培養(yǎng)我們的自主學習能力和動手能力,提高我們的編程水平。2概要設計2.1系統(tǒng)總體分析本程序是顯示由多個字符組成的圖形的程序,余姚將多個字符定義在一個字符圖形表里。字符圖形表包括每個字符的ASCII碼、屬性以及在顯示圖形中的相對位移量,值得注意的是,每個字符的位置由前一個字符的位置決定。這個字符圖形表由這4個參數(shù)組成。字符圖形表中的第一個字節(jié)“94”是組成圖形的字符數(shù),編寫程序時需要將每個字符的ASCII碼和屬性以及顯示的位置放入相應的寄存器中,然后發(fā)出顯示命令,黨94個字符都顯示出來后,我們就可以看到“元旦”為了清晰地看到每一個字,需要延時,程序中編寫了延時子程序。此外,程序中還有清屏子程序和移動子程序,通過適當?shù)母淖冄訒r時間,可實現(xiàn)圖形的移動。2.2主模塊框圖及說明字符程序的結構流程圖如圖2-1所示開始開始定義字符圖形數(shù)據(jù)表設置顯示方式設置背景顏色設置彩色調(diào)板清屏清屏讀取字符總數(shù)從指定光標位置顯示字符,字符數(shù)減1字符數(shù)等于0?延時擦除圖形改變行列坐標字符列數(shù)大于150?結束YNNY圖2-1程序流程圖3詳細設計3.1主模塊及子模塊說明本程序是顯示由多個字符組成的圖形的程序,余姚將多個字符定義在一個字符圖形表里。字符圖形表包括每個字符的ASCII碼、屬性以及在顯示圖形中的相對位移量,值得注意的是,每個字符的位置由前一個字符的位置決定。這個字符圖形表由這4個參數(shù)組成。為了清晰地看到每一個字,需要延時,程序中編寫了延時子程序DLY_QRTRPROCNEAR。此外,程序中還有清屏子程序CLEAR_SCREENPROCNEAR和移動子程序MOVE_SHAPEPROCNEAR,通過適當?shù)母淖冄訒r時間,可實現(xiàn)圖形的移動。3.2各模塊詳細設計下面是整體的代碼,各個子模塊在程序中加以注釋。DATASEGMENTCARDB94;定義字符DB02H,122,-5,3…DB02H,122,0,-1CHAR_CNTDW?POINTERDW?LINE_ONDB?COL_ONDB?DATAENDSSTACKISEGMENTDB2000DUP(?)STACKIENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKIMAINPROCFAR;定義過程PUSHDSSUBAX,AX;清0PUSHAXMOVAX,DATAMOVDS,AXMOVAH,0;0號功能調(diào)用,設置顯示模式MOVAL,0;顯示模式的屬性為320*2004色INT10H;10號中斷調(diào)用,BIOS對螢幕及顯示器所提供的服務程式MOVAH,0BH;0B功能調(diào)用,設置調(diào)色板,背景色或邊框MOVBH,0;設置顏色MOVBL,2;顏色INT10HMOVAH,0BHMOVBH,01;選擇調(diào)色板MOVBL,00;調(diào)色板00INT10HCALLCLEAR_SCREEN;調(diào)用清屏子程序LEADI,CARMOVDH,10MOVDL,2CALLMOVE_SHAPEMOVAH,8;8號功能調(diào)用,無回顯的字符的輸入INT21H;中斷21CMPAL,71HJZEXIT;標志位結果為0轉(zhuǎn)移JBNEXT;無符號數(shù)低于時轉(zhuǎn)移NEXT:CMPAL,51HJZEXITMAINENDPCLEAR_SCREENPROCNEAR;清屏子程序PUSHAX;保護現(xiàn)場PUSHBXPUSHCXPUSHDXMOVAH,6;6號功能調(diào)用,初始化屏幕MOVAL,0;清窗口MOVCH,0;窗口的左上角位置(0,0)MOVCL,0MOVDH,120;右下角位置(200,120)MOVDL,200MOVBH,7;空白區(qū)域的缺省屬性INT10H;10號中斷調(diào)用POPDX;恢復現(xiàn)場POPCXPOPBXPOPAXRET;返回CLEAR_SCREENENDPDLY_QRTRPROCNEAR;延時子程序PUSHCXPUSHDXMOVDX,5000D11:MOVCX,25000D12:LOOPD12;循環(huán)25000次DECDX;DX-1JNZD11;結果不為0時轉(zhuǎn)移POPDXPOPCXRETDLY_QRTRENDPMOVE_SHAPEPROCNEAR;擦除子程序PUSHAXPUSHBXPUSHCXPUSHDXPUSHDIMOVAH,0FH;讀取顯示器模式INT10HSUBCH,CH;清0MOVCL,[DI]INCDI;DI+1MOVCHAR_CNT,CXMOVPOINTER,DIMOVLINE_ON,DHMOVCOL_ON,DLMOV_CRSR:ADDDH,[DI+2];Y坐標ADDDL,[DI+3];X坐標MOVAH,2;用文本坐標下設置光標位置INT10HMOVAL,[DI];字符MOVBL,[DI+1];屬性或顏色PUSHCXMOVCX,1;重復輸出字符的次數(shù)MOVAH,09;在當前光標處按指定屬性顯示字符INT10HPOPCXADDDI,4LOOPMOV_CRSRPOPDIPOPDXPOPCXPOPBXPOPAXRETMOVE_SHAPEENDPEXIT:MOVAH,4CH;終止當前程序并返回調(diào)用程序INT21HCODEENDSENDMAIN4.程序調(diào)試4.1運行界面分析本程序可以在masm環(huán)境下運行,也可在DOS環(huán)境下運行,由于在MASM環(huán)境下操作較為簡單,因此不做說明。下面介紹在DOS環(huán)境下運行的過程。(1)用masm命令對程序進行編譯,如圖4-1所示圖4-1編譯程序(2)用link命令對程序進行連接,如圖4-2所示圖4-2連接程序(3)進入debug,用命令g執(zhí)行程序,結果如圖4-3所示圖4-3字符圖形顯示4.2算法的分析本次設計的思想便是利用字符來拼湊一個圖形,調(diào)用畫圖子程序循環(huán)的輸出不同位置的字符,直到所需的所有字符輸出完,圖形也就顯示出來了。需要注意的是,每字符的位置由它前一個字符確定。4.3調(diào)試過程及分析本程序可以在DOS環(huán)境和MASM環(huán)境下運行,在DOS環(huán)境下運行,首先用masm命令將源程序.asm進行編譯,生成.obj文件;其次,用Link命令進行連接,產(chǎn)生.exe文件;最后進入debug,用-g命令進行調(diào)試運行。值得注意的是,各個階段產(chǎn)生的目標文件的文件格式不同,因此在輸入命令的時候,要注意文件的后綴名。若是在MASMEDIT軟件下運行,則只需點擊相應的功能按鈕即可。用MASMEDIT軟件運行的界面友好,視覺效果相對于DOS界面要好看。5心得體會5.1設計體會這次課程設計總體來說做得比較順利。在設計前期,我翻閱了很多資料,加深了對匯編語言的學習,基本掌握了怎樣運用匯編語言去設計字符圖形,并制作出相應的流程圖。程序中主要用到顯示輸出管理10號中斷調(diào)用及其多種功能。我就這方面進行了深入的學習,掌握了

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論