




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
武漢理工大學(xué)《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說(shuō)明書(shū)PAGEPAGE19學(xué)號(hào):課程設(shè)計(jì)題目字符串動(dòng)畫(huà)顯示設(shè)計(jì)學(xué)院自動(dòng)化學(xué)院專(zhuān)業(yè)自動(dòng)化專(zhuān)業(yè)班級(jí)自動(dòng)化1004姓名指導(dǎo)教師2013年1月10日
課程設(shè)計(jì)任務(wù)書(shū)學(xué)生姓名:專(zhuān)業(yè)班級(jí):指導(dǎo)教師:教授工作單位:自動(dòng)化學(xué)院題目:字符串動(dòng)畫(huà)顯示設(shè)計(jì)初始條件:掌握8086匯編語(yǔ)言程序設(shè)計(jì)方法,設(shè)計(jì)不同的動(dòng)態(tài)顯示方式來(lái)實(shí)現(xiàn)一個(gè)字符串定的動(dòng)畫(huà)顯示,完成相應(yīng)的程序編寫(xiě)。要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書(shū)撰寫(xiě)等具體要求)1、菜單內(nèi)容包括:=1\*GB3①輸入字符串;=2\*GB3②字符串動(dòng)畫(huà)顯示;=3\*GB3③退出。2、輸入字符串選擇該項(xiàng)后,可以輸入一個(gè)字符串。該字符串即為動(dòng)畫(huà)顯示時(shí)所顯示的字符串。3、字符串動(dòng)畫(huà)顯示所顯示字符串在一矩形框內(nèi)從無(wú)到有,從右至左移動(dòng),完全從框內(nèi)移出后,又從右至左移動(dòng),直到有任意鍵按下,停止字符串動(dòng)畫(huà)顯示返回到主菜單。4、在主菜單中選擇退出項(xiàng),則結(jié)束程序返回DOS。5.撰寫(xiě)課程設(shè)計(jì)說(shuō)明書(shū)。內(nèi)容包括:摘要、目錄、正文、參考文獻(xiàn)、附錄(程序清單)。正文部分包括:設(shè)計(jì)任務(wù)及要求、方案比較及論證、軟件設(shè)計(jì)說(shuō)明(軟件思想,流程,源程序設(shè)計(jì)及說(shuō)明等)、程序調(diào)試說(shuō)明和結(jié)果分析、課程設(shè)計(jì)收獲及心得體會(huì)。時(shí)間安排: 2012年12月30日2013年01月01日2013年01月06日2013年01月09日指導(dǎo)教師簽名:2013年01月11日系主任(或責(zé)任教師)簽名:年月日
目錄TOC\o"1-2"\h\z\u摘要 11總體方案論證 21.1題目功能 21.2算法分析 22流程圖設(shè)計(jì)及說(shuō)明 32.1主程序流程圖 32.2菜單流程圖 42.3字符串輸入流程圖 52.4字符串左移流程圖 62.5按任意鍵返回菜單流程圖 73軟件設(shè)計(jì)關(guān)鍵問(wèn)題或程序段落說(shuō)明 83.1提示退出或繼續(xù)功能實(shí)現(xiàn) 83.2字符串輸入功能實(shí)現(xiàn) 83.3字符左移程序?qū)崿F(xiàn) 93.4按任意鍵返回菜單的實(shí)現(xiàn) 103.5延時(shí)函數(shù)的實(shí)現(xiàn) 114結(jié)果記錄及分析 124.1提示窗口 12心得體會(huì) 14參考文獻(xiàn) 15附錄:程序清單 16摘要本設(shè)計(jì)使用匯編語(yǔ)言,在MF2KP平臺(tái)上實(shí)現(xiàn)了字符串的輸入并且動(dòng)畫(huà)顯示的效果。21世紀(jì)是一個(gè)科技的時(shí)代,是一個(gè)計(jì)算機(jī)廣泛使用的時(shí)代,認(rèn)真學(xué)好計(jì)算機(jī)知識(shí),熟悉計(jì)算機(jī)軟件編程對(duì)未來(lái)走上社會(huì)從事科學(xué)研究有很大的幫助。本文的字符串動(dòng)畫(huà)顯示程序,通過(guò)靈活運(yùn)用匯編語(yǔ)言的操作,靈活運(yùn)用其語(yǔ)法,結(jié)合一定的算法思想,實(shí)現(xiàn)了字符串的從右向左,逐個(gè)字符從無(wú)到有,從有到無(wú)的動(dòng)態(tài)循環(huán)顯示,并且能夠在不重新啟動(dòng)程序情況下,隨時(shí)改動(dòng)字符串的內(nèi)容。關(guān)鍵詞:匯編語(yǔ)言字符串動(dòng)畫(huà)
1總體方案論證1.1題目功能程序起始是菜單,提示是否輸入字符串或者退出,按Q/q鍵可以退出程序,按任意其他鍵可以開(kāi)始輸入字符串,輸入字符串完畢按回車(chē)開(kāi)始動(dòng)畫(huà)顯示字符串。此時(shí)可以按任意鍵退回到菜單,可以退出也可以再次輸入字符串。1.2算法分析(1)屏幕提示輸入字符串主要運(yùn)用中斷INT21H的0aH,09H功能;(2)在確定選擇字符輸入后進(jìn)行字符輸入,輸入完成后判斷回車(chē)鍵開(kāi)始動(dòng)畫(huà)顯示;(3)動(dòng)畫(huà)顯示時(shí)實(shí)時(shí)檢測(cè)按鍵是否按下,有任意鍵按下就退回主菜單;(4)字符的移動(dòng)通過(guò)改變字符串的起始顯示光標(biāo)來(lái)實(shí)現(xiàn),讓光標(biāo)起始變量遞減并限制在一定范圍就可以了;(5)字符串的從無(wú)到有的漸變效果可以通過(guò)判斷字符顯示是否超過(guò)字符顯示區(qū)域來(lái)實(shí)現(xiàn),字符串的從有到無(wú)可以通過(guò)判斷在字符顯示區(qū)域的字符數(shù)來(lái)實(shí)現(xiàn)。
2流程圖設(shè)計(jì)及說(shuō)明2.1主程序流程圖主程序流程圖如圖2-1所示:開(kāi)始開(kāi)始段地址初始化進(jìn)入DOS窗口輸出提示信息段地址初始化輸入字符串字符串右移任意鍵按下?按下Q/q鍵?終止YNYN圖2-1主程序流程圖
2.2菜單流程圖菜單程序流程圖如圖2-2所示:開(kāi)始開(kāi)始顯示退出或繼續(xù)信息顯示退出或繼續(xù)信息按下Q/q?結(jié)束按下按鍵?字符串輸入YNYN圖2-2菜單程序流程圖
2.3字符串輸入流程圖菜單程序流程圖如圖2-3所示:開(kāi)始開(kāi)始顯示輸入字符串提示初始化輸入變量結(jié)束是否回車(chē)?將字符存到緩存區(qū)YN圖2-3菜單程序流程圖讀取鍵盤(pán)輸入值
2.4字符串左移流程圖字符串左移程序流程圖如圖2-4所示:開(kāi)始開(kāi)始初始化起始列標(biāo)、字符串指針設(shè)置光標(biāo)位置為列標(biāo)結(jié)束是否顯示區(qū)左邊界將光標(biāo)變量與字符串長(zhǎng)度求和Y圖2-4字符串左移程序流程圖讀取準(zhǔn)備顯示一個(gè)字符顯示字符串已不在顯示區(qū)?設(shè)光標(biāo)變量為右邊界是否顯示完?YYNNN
2.5按任意鍵返回菜單流程圖按任意鍵返回菜單程序流程圖如圖2-5所示:開(kāi)始開(kāi)始讀取鍵盤(pán)結(jié)束是否有鍵按下?YN圖2-5按任意鍵返回菜單程序流程圖設(shè)置光標(biāo)為左上角
3軟件設(shè)計(jì)關(guān)鍵問(wèn)題或程序段落說(shuō)明3.1提示退出或繼續(xù)功能實(shí)現(xiàn)通過(guò)判斷按下的按鍵是否Q鍵,來(lái)決定程序是否要退出。如果按下了按鍵并且按下的按鍵不是Q鍵,那么就開(kāi)始顯示輸入字符串。如果沒(méi)有按下按鍵程序?qū)⒁恢碧幱诘却隣顟B(tài)。XORAH,AH MOVAH,06H MOVDL,0FFH INT21Hcmpal,'Q'jeexit1cmpal,'q'jeexit1cmpal,0;沒(méi)有鍵按下,繼續(xù)等待jneCon;有鍵按下就下一步j(luò)mpCheckExit3.2字符串輸入功能實(shí)現(xiàn)使用INT21的0Ah功能實(shí)現(xiàn)字符串的輸入,通過(guò)對(duì)字符進(jìn)行逐個(gè)輸入,并且實(shí)時(shí)判端輸入的是否回車(chē),直到輸入的是回車(chē)就執(zhí)行顯示動(dòng)畫(huà)程序,否則就一直將輸入的字符儲(chǔ)存到緩存區(qū)。leadx,bufmovah,0ahint21hmovbx,2;多字符輸入,回車(chē)結(jié)束,有效內(nèi)容自第三個(gè)始。movdi,0movStrLen,0B1:moval,buf[bx]cmpal,13;是否是回車(chē)?jeAG1movbuff1[di],alincdiincStrLenincbxjmpB13.3字符左移程序?qū)崿F(xiàn)這段程序比較長(zhǎng),而且復(fù)雜。為了避免字符串移動(dòng)時(shí)閃屏的現(xiàn)象,將一個(gè)字符串顯示完畢后,延時(shí)一段時(shí)間,以產(chǎn)生視覺(jué)停留效果,隨后馬上清屏,清屏后不延時(shí)就馬上進(jìn)行下一次字符串顯示。為了實(shí)現(xiàn)從無(wú)到有、從右到左的效果,令字符串起始指針從顯示列指針開(kāi)始增加,如果字符串指針還在顯示區(qū)內(nèi)就顯示出來(lái),否則不顯示。當(dāng)列指針遞減時(shí),就有字符串從右邊到左邊從無(wú)到有地變化了。為了實(shí)現(xiàn)字符串從右到左消失的效果,列指針小于字符顯示區(qū)下界時(shí),如果字符在顯示區(qū)就顯示,否則不顯示,就可以得到字符從有到無(wú)的漸變效果。AG1:movah,0moval,2int10h;黑白文本SetCount:movcount,40;字符串向右移動(dòng),給出起始列ShowStart:;循環(huán)顯示開(kāi)始MOVSI,OFFSETbuff1movdl,countmovdi,0ShowString:movdh,7;dhhangdllieincdlmovah,2int10h;置光標(biāo)位置2號(hào)置光標(biāo)位置9號(hào)指定輸出,每次顯示一個(gè)movah,09;9號(hào)功能incdimoval,[si]incsimovbh,0;顯示頁(yè)movbl,0eh;colormovcx,01;顯示字符的次數(shù)pushaxmoval,dlcmpdl,30popaxjbNextWordint10h;showNextWord:moval,dladdal,StrLencmpal,30jgeNextmovcount,41jmpShowOverNext:cmpdl,40jgShowOvercmpdi,wordptrStrLen;立即數(shù)大小取決于字符串大小jbShowStringShowOver:calldelay1deccount;左移一列3.4按任意鍵返回菜單的實(shí)現(xiàn)程序中循環(huán)檢測(cè)按鍵是否按下,主要通過(guò)INT21H的06H功能實(shí)現(xiàn)的,讀取后,如果沒(méi)有按鍵按下就繼續(xù)動(dòng)畫(huà)顯示字符串。如果有按鍵按下,就使光標(biāo)回到左上角,然后使程序跳轉(zhuǎn)回到菜單。 XORAH,AH MOVAH,06H MOVDL,0FFH INT21Hcmpal,0jeShowStart; ReStart://任意鍵退出movdh,0;光標(biāo)回到初始地方incdlmovah,2int10h;置光標(biāo)位置2號(hào)置光標(biāo)位置9號(hào)指定輸出,每次顯示一個(gè)jmpStartAg3.5延時(shí)函數(shù)的實(shí)現(xiàn)延時(shí)函數(shù)沒(méi)有使用定時(shí)器,而是通過(guò)執(zhí)行空語(yǔ)句實(shí)現(xiàn),其中使用兩層循環(huán)嵌套,能夠容易實(shí)現(xiàn)較長(zhǎng)時(shí)間的延時(shí),只是時(shí)間的精度較低。delay1procnearpushcxpushbxmovbx,1fffhwait4:movcx,0ffffhwait5:loopwait5decbxjnzwait4popbxpopcxretdelay1endp
4結(jié)果記錄及分析4.1提示窗口圖4-1按Q或q退出,其他鍵繼續(xù)圖4-2輸入字符串提示圖4-3字符串從無(wú)到有圖4-3字符串全部在顯示窗口圖4-3字符串從有到無(wú)心得體會(huì)這次微機(jī)課程設(shè)計(jì),本人第一次用匯編程序編寫(xiě)了這么長(zhǎng)的程序。一開(kāi)始時(shí)毫無(wú)頭緒,不知道從何處著手。通過(guò)對(duì)題目進(jìn)行詳細(xì)的分析,上網(wǎng)查資料,參考他人程序,逐步對(duì)題目要求的效果有了一定的了解,對(duì)其中算法實(shí)現(xiàn)過(guò)程也有了認(rèn)識(shí)。開(kāi)始寫(xiě)程序時(shí),從簡(jiǎn)單到復(fù)雜,先實(shí)現(xiàn)簡(jiǎn)單的功能,并且是一步一步實(shí)現(xiàn)的,按照功能效果的流程從頭到尾,一個(gè)一個(gè)功能往程序里加。其中也遇到不少的問(wèn)題,比如,當(dāng)實(shí)現(xiàn)了部分功能,再往里添加別的功能的時(shí)候,往往新的效果出不來(lái),而舊的效果也沒(méi)有了。這是一個(gè)很讓人頭疼的問(wèn)題,但是經(jīng)過(guò)認(rèn)真排查,逐步分析,最后還是成功完成了程序的編寫(xiě)。
參考文獻(xiàn)[1]彭虎等編著.微機(jī)原理與接口技術(shù)(第二版).北京:電子工業(yè)出版社,2008[2]沈美明,溫東禪.IBM-PC匯編語(yǔ)句程序設(shè)計(jì)(第2版).北京:清華大學(xué)出版社,2001[3]任向明,盧惠林.匯編語(yǔ)言程序設(shè)計(jì)實(shí)用教程.北京:清華大學(xué)出版社,2009[4]馬力妮.80x86匯編語(yǔ)言程序設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2004[5]艾德才.Pentium系列微型計(jì)算機(jī)原理與接口技術(shù).北京:高等教育出版社,2000
附錄:程序清單datasegmentbuff1db'$';inputstringbufdb100dup('$')buff3db'pleaseinputastring!',13,10,'$'buff4db'PressQorqtoexit,otherkeystocontinue',13,10,'$'countdb?StrLendb?ShowLendb?BAddrdb?dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axStartAg:leadx,buff4;顯示提示信息movah,09hint21hCheckExit:;主菜單檢測(cè)Q鍵XORAH,AH MOVAH,06H MOVDL,0FFH INT21Hcmpal,'Q'jeexit1cmpal,'q'jeexit1cmpal,0;沒(méi)有鍵按下,繼續(xù)等待jneCon;有鍵按下就下一步j(luò)mpCheckExitCon:leadx,buff3;顯示提示信息movah,09hint21hleadx,bufmovah,0ahint21hmovbx,2;多字符輸入,回車(chē)結(jié)束,有效內(nèi)容自第三個(gè)始。movdi,0movStrLen,0B1:moval,buf[bx]cmpal,13;是否是回車(chē)?jeAG1movbuff1[di],alincdiincStrLenincbxjmpB1exit1:movah,4chint21hAG1:movah,0moval,2int10h;黑白文本SetCount:movcount,40;字符串向右移動(dòng),給出起始列ShowStart:;循環(huán)顯示開(kāi)始MOVSI,OFFSETbuff1movdl,countmovdi,0ShowString:movdh,7;dhhangdllieincdlmovah,2int10h;置光標(biāo)位置2號(hào)置光標(biāo)位置9號(hào)指定輸出,每次顯示一個(gè)movah,09;9號(hào)功能incdimoval,[si]incsimovbh,0;顯示頁(yè)movbl,0eh;colormovcx,01;顯示字符的次數(shù)pushaxmoval,dlcmpdl,30popaxjbNextWordint10h;showNextWord:moval,dladdal,StrLencmpal,30jgeNextmovcount,41jmpShowOverNext:cmpdl,40jgShowOvercmpdi,wordptrStrLen;立即數(shù)大小取決于字符串大小jbShowStringShowOver:ca
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)裝施工方案
- 復(fù)古外墻防水施工方案
- 環(huán)境科學(xué)與工程知識(shí)點(diǎn)回顧
- 專(zhuān)業(yè)工程返點(diǎn)協(xié)議
- 種苗買(mǎi)賣(mài)合同書(shū)
- 管道基礎(chǔ)施工方案
- 通信電纜施工方案
- 雙鴨山避雷塔施工方案
- 地板磚拆除施工方案
- 三明透氣型運(yùn)動(dòng)場(chǎng)施工方案
- 永安電力股份有限公司三臺(tái)縣凱河110千伏輸變電新建工程環(huán)評(píng)報(bào)告
- 人體解剖生理學(xué)教案
- 減少噪音保護(hù)聽(tīng)力
- 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用PPT完整全套教學(xué)課件
- 巖石力學(xué)與工程課后習(xí)題與思考解答
- 《民族樂(lè)器分類(lèi)二》教案
- API520-安全閥計(jì)算PART1(中文版)
- 本科畢設(shè)論文--企業(yè)vpn的接入規(guī)劃與設(shè)計(jì)
- 生產(chǎn)車(chē)間管理制度辦法
- 機(jī)電企業(yè)管理導(dǎo)論第1章課件
- 當(dāng)責(zé)培訓(xùn)課件-張文隆
評(píng)論
0/150
提交評(píng)論