微機(jī)課設(shè)顯示姓名_第1頁
微機(jī)課設(shè)顯示姓名_第2頁
微機(jī)課設(shè)顯示姓名_第3頁
微機(jī)課設(shè)顯示姓名_第4頁
微機(jī)課設(shè)顯示姓名_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

武漢理工大學(xué)《微機(jī)原理技術(shù)》課程設(shè)計(jì)說明書武漢理工大學(xué)《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說明書[鍵入文字]II[鍵入文字]武漢理工大學(xué)《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說明書計(jì)算機(jī)漢字姓名顯示軟件設(shè)計(jì)1設(shè)計(jì)任務(wù)及要求分析根據(jù)任務(wù)書進(jìn)行分析可知,此課程設(shè)計(jì)要求用匯編語言編寫程序顯示自己名字“周帆”。設(shè)計(jì)的基本要求為:使用匯編語言設(shè)計(jì)一個(gè)運(yùn)行于計(jì)算機(jī)的漢字姓名顯示軟件,軟件應(yīng)實(shí)現(xiàn)顯示作者自己的漢字姓名??梢愿郊语@示時(shí)間等其它信息和添加動(dòng)態(tài)顯示效果。完成課程設(shè)計(jì)說明書,且說明書撰寫格式應(yīng)符合《課程設(shè)計(jì)說明書統(tǒng)一書寫格式》。2系統(tǒng)原理闡述分析設(shè)計(jì)任務(wù)及要求可以得知編寫此匯編程序的基本原理,使用模塊化編程,即編寫一個(gè)主程序和若干個(gè)子程序(延時(shí)子程序、提示信息子程序、顯示姓名子程序)來完成設(shè)計(jì)任務(wù)所要求的功能,用這種方法思路清晰,主程序完成的功能為:首先要確定初始時(shí)刻的光標(biāo)位置,然后在該位置處分別調(diào)用提示信息子程序和顯示姓名子程序,為了使我們能夠看到自己的名字必須調(diào)用延時(shí)子程序以增加顯示的時(shí)間。延時(shí)子程序的原理為通過設(shè)計(jì)循環(huán)來增加程序執(zhí)行的次數(shù),從而達(dá)到增加時(shí)間的目的,提示信息子程序的原理為通過int21h的09h功能來完成提示信息的顯示。顯示姓名子程序的原理為首先通過漢字取模軟件完成姓名漢字的編碼,經(jīng)過的方格用1表示,沒有經(jīng)過的方格用0表示,然后應(yīng)用int10h的09號(hào)功能完成字符的顯示,將主程序和各個(gè)子程序組合在一起即可完成匯編程序的編制。3匯編語言程序設(shè)計(jì)3.1軟件思想根據(jù)設(shè)計(jì)任務(wù)及要求,可以得到匯編語言的基本思想為編寫一個(gè)主程序和若干個(gè)子程序,各子程序分別為:延時(shí)子程序、提示信息子程序、顯示姓名子程序,在程序運(yùn)行時(shí)用主程序分別調(diào)用各個(gè)子程序,即可完成匯編語言程序的編制。因?yàn)楦鱾€(gè)子程序是相互獨(dú)立的,這樣可以先依靠主程序來完成一部分功能,然后通過增加子程序逐漸增加系統(tǒng)的功能,最終達(dá)到所要求的功能。這樣可以將大問題簡(jiǎn)化為一個(gè)個(gè)的小問題,將大程序簡(jiǎn)化為一個(gè)個(gè)得小程序,這樣可以減小編寫程序的難度。3.2流程圖開始開始設(shè)置顯示方式調(diào)用提示信息子程序設(shè)置初始時(shí)刻光標(biāo)位置調(diào)用姓名子程序調(diào)用延遲時(shí)間子程序調(diào)用清屏子程序調(diào)用提示信息子程序調(diào)用清屏子程序調(diào)用提示信息子程序檢測(cè)鍵盤狀態(tài)是否有Q結(jié)束確定光標(biāo)位置光標(biāo)是否在屏幕底部調(diào)用姓名子程序調(diào)用延遲子程序圖1軟件流程圖3.3各子程序功能及說明3.3.1主程序說明CODESEGMENT; 程序段代碼起始位置ASSUMECS:CODE,DS:DATA,SS:STACKS;程序段,數(shù)據(jù)段,堆棧地址初始化設(shè)置START:;程序開始標(biāo)識(shí)MOVAX,DATA;數(shù)據(jù)段首地址初始化設(shè)置MOVDS,AX;MOVAX,STACKS;堆棧首地址初始化設(shè)置 MOVSS,AX;MOVSP,OFFSETTOP;堆棧指針偏址設(shè)置MOVYANSE,07H;改變顏色寄存器默認(rèn)值黑底白字YANSE,07H改變此值可以改變顏色MAIN:CALLFARPTRCLEARSCR;調(diào)用顯示器設(shè)置函數(shù)MOVBH,0;設(shè)置顯示的頁號(hào)MOVAH,6;功能號(hào)6HMOVAL,0;清窗口MOVBH,YANSE;屬性為白底黑字MOVCH,0MOVCL,0MOVDH,24MOVDL,79INT10HPRINTFSTRING1,6,20 ;以下14行是顯示器打印名字PRINTFSTRING2,7,20;PRINTFSTRING3,8,20;PRINTFSTRING4,9,20;PRINTFSTRING5,10,20;PRINTFSTRING6,11,20;PRINTFSTRING7,12,20;PRINTFSTRING8,13,20;PRINTFSTRING9,14,20;PRINTFSTRING10,15,20;PRINTFSTRING11,16,20;PRINTFSTRING12,17,20;PRINTFSTRING13,18,20;PRINTFSTRING14,19,20;BEGIN:MOVAH,01;從鍵盤輸入字符INT21HCMPAL,'Q';輸入Q鍵則退出程序JEEXITCMPAL,'W';輸入R鍵則轉(zhuǎn)移JEAACMPAL,'C';輸入L鍵則轉(zhuǎn)移JEBBJMPBEGIN;返回BEGIN AA:MOVYANSE,70H;CALLMOVE_SHAPE_B;改變顏色白底黑字YANSE,70H改變此值可以改變顏色JMPMAIN BB:MOVYANSE,35H;CALLMOVE_SHAPE_C;改變顏色彩色顯示YANSE,35H改變此值可以改變顏色JMPMAINEXIT:MOVAH,4CH;主程序結(jié)束INT21HCODEENDENDSTART3.3.2顯示漢字子程序及功能說明PRINTFMACRO_STRING,_PY,_PX;宏用于顯示器打印三個(gè)參數(shù)分別是要顯示的字符串,行號(hào),列號(hào)MOVAH,02H;MOVBH,0;設(shè)置顯示的頁號(hào)MOVDL,_PX;當(dāng)前顯示的列號(hào)MOVDH,_PY;當(dāng)前顯示的列號(hào)INT10H;當(dāng)前光標(biāo)位置設(shè)置MOVAH,09H;指令設(shè)置MOVBL,78H;指令設(shè)置LEADX,_STRING;顯示的字符串INT21H;ENDM;宏結(jié)束STACKSSEGMENTSTACK;堆棧設(shè)置DB2000DUP(?) ;長(zhǎng)度為2000字節(jié)TOPLABELWORD;STACKSENDS;堆棧設(shè)置完成3.3.3提示信息子程序及其功能說明BEGIN:MOVAH,01;從鍵盤輸入字符INT21HCMPAL,'Q';輸入Q鍵則退出程序JEEXITCMPAL,'W';輸入R鍵則轉(zhuǎn)移JEAACMPAL,'C';輸入L鍵則轉(zhuǎn)移JEBBJMPBEGIN;返回BEGIN AA:MOVYANSE,70H;CALLMOVE_SHAPE_B;改變顏色白底黑字YANSE,70H改變此值可以改變顏色JMPMAIN BB:MOVYANSE,35H;CALLMOVE_SHAPE_C;改變顏色彩色顯示YANSE,35H改變此值可以改變顏色JMPMAIN4測(cè)試記錄及其結(jié)果分析編寫好程序后即可運(yùn)行測(cè)試程序,在剛開始調(diào)試的時(shí)候姓名顯示的并不清晰,有時(shí)根本認(rèn)不出來自己的姓名,經(jīng)過仔細(xì)檢查,最終發(fā)現(xiàn)漢字取模軟件中方格數(shù)錯(cuò)了,經(jīng)過多次計(jì)算并多次確認(rèn)最終得到了正確的姓名模型。另外,通過修改延遲子程序中的程序循環(huán)次數(shù)可以改變姓名的下落速度的快慢。5程序調(diào)試程序調(diào)試過程中,在堆棧設(shè)置中設(shè)置長(zhǎng)度為2000字節(jié)時(shí)使用的語句“DB2000DUP(?);長(zhǎng)度為2000字節(jié)”報(bào)錯(cuò),錯(cuò)誤提示為“unterminatedstring:2000DUP("")”,嘗試把DUP改為dup,之后依然報(bào)錯(cuò),于是通過在網(wǎng)上查找方法,和查找書籍,發(fā)現(xiàn)emu8086不可以使用dup(?)來分配未初始化的單元,于是把“DB2000DUP(?) ;長(zhǎng)度為2000字節(jié)”換成“buffer

db

128

dup(0)”即可。6小結(jié)課程設(shè)計(jì)是我們大學(xué)課堂,特別是我們工程學(xué)科的重要組成部分,是我們把課堂中學(xué)到的理論知識(shí)運(yùn)用到實(shí)踐的重要途徑。課程設(shè)計(jì)使我們?cè)诙虝r(shí)間內(nèi)獨(dú)自完成一個(gè)程序的設(shè)計(jì)、運(yùn)行、調(diào)試,能提高我們對(duì)所學(xué)課程的應(yīng)用能力,加深對(duì)所學(xué)課程的理解,不僅可以鞏固課堂上學(xué)過的知識(shí),而且可以學(xué)到很多在書本上所沒有學(xué)到過的知識(shí),拓寬了自己的知識(shí)面。大學(xué)不能想中學(xué)那樣,針對(duì)一個(gè)考試,進(jìn)行三年的填鴨式教育,大學(xué)需要面向社會(huì)、市場(chǎng)需求,培養(yǎng)出能做事,有創(chuàng)造力的學(xué)生來,而不是只會(huì)考試的書呆子。我們平時(shí)在課堂上,書本上接觸的程序都是很短、很基礎(chǔ)的,所以總認(rèn)為像畫程序框圖,設(shè)計(jì)程序算法之類的步驟都是多此一舉,也很少會(huì)認(rèn)識(shí)到模塊化程序設(shè)計(jì)的重要性。而通過這次課程設(shè)計(jì),我深刻地體會(huì)到這些步驟都是多么的重要。選擇了好的算法,往往能節(jié)省很多編程的時(shí)間,還能優(yōu)化程序,使程序執(zhí)行地更加快速流暢。而程序框圖可以使我們非常清楚的知道、明晰每一步要做什么,每一步要完成什

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論