匯編語(yǔ)言字符圖形程序?qū)嶒?yàn)報(bào)告_第1頁(yè)
匯編語(yǔ)言字符圖形程序?qū)嶒?yàn)報(bào)告_第2頁(yè)
匯編語(yǔ)言字符圖形程序?qū)嶒?yàn)報(bào)告_第3頁(yè)
匯編語(yǔ)言字符圖形程序?qū)嶒?yàn)報(bào)告_第4頁(yè)
匯編語(yǔ)言字符圖形程序?qū)嶒?yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論