微機原理字符串動畫顯示_第1頁
微機原理字符串動畫顯示_第2頁
微機原理字符串動畫顯示_第3頁
微機原理字符串動畫顯示_第4頁
微機原理字符串動畫顯示_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 微機原理課設報告 學生姓名: 常衛(wèi)洪 學號: 130704101 專業(yè)班級: 電子科學與技術(shù) 131 班 課程名稱: 微型計算機原理及應用技術(shù) 學年學期: 2015-2016 學年第 1 學期 指導教師: 趙艷 2 015 年 12 月2課程設計成績評定表課程設計成績評定表學生姓名常衛(wèi)洪學 號130704101成績專業(yè)班級電科 131起止時間2015.12.20 至 2015.12.29設計題目字符串動畫顯示 指導教師評語課程設計態(tài)度: 端正 較端正 一般 較差 課程設計紀律:好 較好 一般 較差 課程設計出勤情況:好 較好 一般 較差 課程設計任務完成情況:優(yōu)秀 好 一般 較差 課程設計

2、報告完成情況:優(yōu)秀 好 一般 較差 動手能力:強 較強 一般 較差 團隊精神:好 較好 一般 較差 創(chuàng)新意識:強 較強 一般 較差 指導教師: 年 月 日3目錄目錄一、設計目的-4二、設計任務與要求-4三、小組分工-4四、實現(xiàn)方法-4五、功能效果展示-11六、改進以及及建意-13七、心得體會-14八、參考資料-14九、附源程序-144一、設計目的:一、設計目的:1、掌握匯編語言,會利用匯編語言編寫一定功能的程序;2、熟悉 DOS 環(huán)境以及在 DOS 下會調(diào)試編寫好的匯編程序;3、熟悉常用的 DOS 功能;4、小組合作完成設計題目。二、設計任務與要求設計任務與要求設計內(nèi)容要求: 1、菜單內(nèi)容包括

3、:輸入字符串;字符串動畫顯示;退出。 2、輸入字符串選擇該項后,可以輸入一個字符串。該字符串即為動畫顯示時所顯示的字符串。 3、字符串動畫顯示 所示字符串在一矩形框內(nèi)一半從左另一半從右向中間移動,當兩半相遇時又分別向兩邊移動,直至遇到兩側(cè)的邊框雙重新向中間移動,重復上述過程直至按任意鍵,則停止字符串動畫顯示返回到主菜單。 4、在主菜單中選擇退出項,則結(jié)束程序返回 DOS。3 3、進度及分工安排進度及分工安排1.1. 進度安排進度安排序號設計內(nèi)容時間1查閱資料、確定設計思路3 天2設計實現(xiàn)、編寫程序3 天3調(diào)試1 天4考核設計、寫設計報告2 天2.2. 分工安排分工安排序號工作內(nèi)容 成員1確定設

4、計思路,畫流程圖 陳繼賢2編寫字符串移動程序段 張恒 劉陽3編寫菜單項,矩形框程序段 常衛(wèi)洪 陳繼賢4程序匯總 ,調(diào)試張恒 田淑乾4 4、實現(xiàn)方法實現(xiàn)方法54.1 MASM 編譯開發(fā)環(huán)境實現(xiàn)編譯開發(fā)環(huán)境實現(xiàn)MASM 是微軟公司開發(fā)的匯編開發(fā)環(huán)境,擁有可視化的開發(fā)界面,使開發(fā)人員不必再使用 DOS 環(huán)境進行匯編的開發(fā),編譯速度快,支持 80 x86 匯編以及Win32Asm 是 Windows 下開發(fā)匯編的利器。它與 windows 平臺的磨合程度非常好,但是在其他平臺上就有所限制,使用 MASM 的開發(fā)人員必須在 windows 下進行開發(fā)。MASM 版本至今在不斷的更新,目前的最新版本為 1

5、0.0,推薦使用新版本進行開發(fā)。MASM 5.0 是最常用的匯編連接軟件 其簡單操作為 輸入 asm 文件將其連接為 obj 文件 用 link 得到 exe 文件。4.2 算法實現(xiàn)算法實現(xiàn)軟中斷:DOS 功能調(diào)用編寫的程序中 INT 10H 和 INT 21H 軟中斷的應用。如下表:INT 10H功能號功能入口參數(shù)出口參數(shù)00H設置顯示模式AL=03 80*25 彩色文本方式無0EH顯示字符AL字符字符顯示在屏幕上INT 21H功能號功能入口參數(shù)出口參數(shù)09H顯示字符串DS:DX=緩沖區(qū)0AH輸入字符串DS:DX=緩沖區(qū)01H鍵盤輸入字符AL=輸入字符INT 16H功能號功能入口參數(shù)出口參數(shù)

6、00H從鍵盤讀字符AL=字符碼AH=掃描碼矩形框代碼:豎框編寫右上角編寫右下角編寫左下角編寫左上角編寫橫框編寫總體流程:6設置三個選項分別對應選項標號。將鍵盤輸入的標號與 1、2、3 相比較以確定不同的程序塊調(diào)用接口。 “1”輸入字符串,即進入過程一;“2”動畫顯示所要求的字符串,即調(diào)用過程二;“3”返回 DOS 系統(tǒng),即調(diào)用 EXIT 標號。4.3 流程圖流程圖: 4.4 部分程序部分程序1. 菜單程序菜單程序 MENU DB 5 DUP(0AH)DB 31 DUP( ),MAIN MENU,0DH,0AHDB 25 DUP( ),201,21 DUP(205),187,0DH,0AHDB

7、25 DUP( ),186, 1.INPUT A STRING .,186,0DH,0AHDB 25 DUP( ),186, 2.DISPLAY MODEL . ,186,0DH,0AHDB 25 DUP( ),186, 3.RETURN TO DOS . ,186,0DH,0AHDB 25 DUP( ),200,21 DUP(205),188,0DH,0AHDB 28 DUP( ),CHOICE(1,2,3):$MESG DB 0DH,0AH,0DH,0AH,9,PRESS ANY KEY TO EXIT .$CNT1 DW 0 ;前導空格長度AL=2?AL=3?輸出提示符輸入字符串以回車結(jié)

8、束輸出矩形框并保持框內(nèi)無字符數(shù)秒輸出提示符輸入字符輸出提示符返回 DOSR?Q?開始輸出主菜單輸入字符(數(shù)字:1、2、3)存 ALAL=1?YNNYYYNYN延時幾秒,直到判斷出矩形框完全出現(xiàn)7CNT2 DW 0 ;左半字符串長度CNT3 DW 0 ;中間空格長度CNT4 DW 0 ;右半字符串長度CNT5 DW 0;末尾空格長度LEFT DW 0STR DB 21DB 0BUF DB 0DH,20 DUP(0)2. 矩形框程序矩形框程序 LINE: ;矩形框MOV DI,(18*80+10)*2MOV AL,201 ;左上角MOV AH,3;矩形框顏色STOSWMOV CX,60-2MOV

9、AL,* ;橫框REP STOSWMOV AL,187 ;右上角STOSWADD DI,20*2MOV AL,| ;豎框STOSWMOV LEFT,DIMOV CX,60-2MOV AL,20H ;空格REP STOSWMOV AL,| ;豎框STOSWADD DI,20*2MOV AL,200 ;左下角STOSWMOV CX,60-2MOV AL,* ;橫框REP STOSWMOV AL,188 ;右下角STOSWRET3. 字符串移動程序字符串移動程序 LEA DX,MENU ;MENU 文件的主菜單 將 MENU 的首地址給 DXMOV AH,9INT 21H8;顯示字符串,DS:DX

10、串地址,即 MENU,畫出方框圖INPUT:MOV AH,0INT 16H;從鍵盤讀一字符CMP AL,1;召喚第一步,輸入一個字符串JNZ CP2 結(jié)果不為零跳轉(zhuǎn) 及 ZF=0CALL SUB01 ;輸入一個字符串JMP INPUTCP2:CMP AL,2;召喚第二步,字符串左右移動JNZ CP3CALL SUB02 ;字符串左右移動JMP AGAIN ;返回到主菜單CP3:CMP AL,3 ;返回 DOSJNZ INPUTLEA DX,MESGMOV AH,9INT 21HMOV AH,1INT 21H;接受字符MOV AH,4CHINT 21H;結(jié)束DELAY PROC PUSH CXP

11、USH DX;保護現(xiàn)場MOV DX,1000;第二輪循環(huán)次數(shù)D1:MOV CX,0FFFFH;第一輪循環(huán)次數(shù) LOOP $ ;若 CX 不等于零,跳轉(zhuǎn)至當前代碼地址的指令($=該指令在該代碼段的偏移地址)DEC DXJNZ D1POP DXPOP CX;現(xiàn)場還原RETDELAY ENDPSUB01:MOV AX,0E0DH;0DH 為本行開頭,0EH 輸出INT 10HMOV AL,0AH;0AH 為下一行輸出INT 10H9LEA DX,STR;DX 輸入字符緩沖區(qū)首地址MOV AH,0AHINT 21H ;輸入一個字符串中斷MOV AX,0E0AH;換行INT 10HRETSUB02:CM

12、P STR+1,2;系統(tǒng)鍵入的字符個數(shù)JNB Y2JMP QUITY2:CALL LINE ;畫矩形框MOV DL,60-2;框內(nèi)長度MOV AL,STR+1;字符長度SUB DL,ALMOV DH,0;DH 清零MOV CNT3,DXMOV BL,ALINC ALSHR AL,1;AL+1/2CBWMOV CNT2,AX;左半邊SUB BL,ALMOV BH,0MOV CNT4,BX;右半邊MOV BL,41Y3:MOV BP,ESPUSH DSPOP ESMOV DI,1000HMOV CX,CNT1JCXZ U1MOV AL,20HREP STOSBU1:LEA SI,BUF;MOV C

13、X,CNT2;REP MOVSB;MOV CX,CNT3JCXZ U2MOV AL,20HREP STOSBU2:MOV CX,CNT4REP MOVSBMOV CX,CNT510JCXZ U3MOV AL,20HREP STOSBU3:SHOW:MOV ES,BPINC BL MOV AH,BL;設置形式白底黑字MOV SI,1000HMOV DI,LEFTMOV CX,60-2PPP:LODSBSTOSWLOOP PPPMOV AH,1INT 16HJNZ SSS ;按任意鍵,返回主菜單CALL DELAYCMP CNT3,0JNZ KK1HERE:MOV AL,1000BXOR BYTE

14、 PTR KK1+1,ALXOR BYTE PTR KK1+5,ALXOR BYTE PTR KK1+9,ALXOR BYTE PTR KK2-3,ALKK1:INC CNT1INC CNT5DEC CNT3CMP CNT3,0JZ KK2DEC CNT3KK2:CMP CNT1,0JZ HEREJMP Y3SSS:MOV STR+1,0QUIT: LEA SI,CNT1XOR AX,AXMOV CX,511KK3:MOV SI,AXINC SIINC SILOOP KK3XOR DI,DIMOV CX,80*25MOV AX,720HREP STOSW ;清全屏RET5、功能效果展示功能效果

15、展示1.1. 調(diào)試調(diào)試程序調(diào)試,是將編制的程序投入實際運行前,用手工或編譯程序等方法進行測試,修正語法錯誤和邏輯錯誤的過程。Debug 是調(diào)試匯編語言程序的工具,它不僅能跟蹤程序的運行,還可以顯示修改內(nèi)存與寄存器內(nèi)容,以便在調(diào)試程序中檢查程序,找錯、改錯。2.2. 編譯成功編譯成功3.3. 連接成功連接成功124.4. 進入程序主界面進入程序主界面5.5. 開始校驗開始校驗136.6. 退出程序退出程序六、改進意見及建議六、改進意見及建議本程序雖然已經(jīng)完成了課程設計的全部要求,但是仍有不足之處,因為時間緊張和知識缺乏,所以程序不是很好。例如:有些程序可以很簡單的完成,但是由于知識的問題只能很繁

16、瑣。有很多限制,比如,限制字符串長度。 。 。應該不能限制字符串長度。七、心得體會七、心得體會 經(jīng)過一周的課程設計練習,對計算機的語言和編程有了一定的了解和掌握,和一定的動手能力。特別明白了凡事要注重細節(jié),細節(jié)很重要。稍有不慎程序就會出現(xiàn)錯誤。比如:少打一個空格或一個逗號或打錯一個字母就不能運行。本次課程設計使用了匯編語言中的 INT10H,INT21H 和 INT1CH 三個軟中斷服務程序。INT10H 是 BIOS 對屏幕及顯示器所提供的服務程序,INT21H 是DOSX 系統(tǒng)功能的調(diào)用。在本次課程設計是,我編寫菜單程序和矩形框程序段。從圖書管理找了一本書,看了 DOS 和 BIOS 的很

17、多指令,也讓我收益匪淺。通過本次課程設計,我將我以前學過的一些指令的運用更加的深刻,還有14一些以前沒學過的指令。對于如何運用 masm 軟件,比在微機原理實驗時有了更深的理解。就算一個字母輸入錯誤都會導致最后程序運行不出來,更加鍛煉了我的細心和認真。遇到問題時,通過自己上網(wǎng)查資料,查課本,鍛煉了自己動手的能力。這也讓我越來越深的認識到,不管以后工作還是學習都要仔細認真,查閱資料。學習的過程大體就是:先大體弄懂要學的那些知識,然后是自己進行練習,通過練習發(fā)現(xiàn)問題,然后是解決問題,這個自學的過程如此反復,每進行一次鍛煉,自己的能力得到一次提升,進而一次次提高自己。實踐與理論相結(jié)合,才能更好的理解

18、所學知識,今后我將努力將基礎知識掌握牢固,爭取在下一次課程設計中能夠改善這次的不足,做出更好的設計,提高自己的能力。多多動手,多多練習,理論聯(lián)系實際,才能真正學會,學懂,學通,融會貫通。 最后,感謝指導老師和同組同學,他們在我完成這項課程設計中起到關鍵的作用,對微機原理這門課程有了更深刻的認識。也正是全組同學的分工合作,全心配合,才能完成這項任務。這次學習的過程也將對我今后的工作和學習起到指導作用。八、參考資料八、參考資料微型計算機原理及應用技術(shù)第 2 版 機械工業(yè)出版社九、附源程序九、附源程序初始化程序:CODE SEGMENTASSUME CS:CODE,DS:CODESTART: MOV

19、 AX,CODEMOV DS,AXMOV AX,0B800H;0B800H 是文本模式下顯存起始地址;;0A000H 是圖形模式下顯存起始地址;;起始地址之后的一段內(nèi)存數(shù)據(jù)決定了界面上顯示的文字、圖形、前背景色MOV ES,AXCLDAGAIN: MOV AX,3INT 10H;設置顯示器模式為 8025 16 色LEA DX,MENU ;MENU 文件的主菜單 將 MENU 的首地址給 DXMOV AH,9INT 21H15;顯示字符串,DS:DX 串地址,即 MENU,畫出方框圖INPUT:MOV AH,1INT 21H;從鍵盤讀一字符CMP AL,1;召喚第一步,輸入一個字符串JNE C

20、P2 ;結(jié)果不為零跳轉(zhuǎn) 及 ZF=0CALL SUB01 ;輸入一個字符串JMP INPUTCP2:CMP AL,2;召喚第二步,字符串左右移動JNZ CP3CALL SUB02 ;字符串左右移動JMP AGAIN ;返回到主菜單CP3:CMP AL,3 ;返回 DOSJNZ INPUTLEA DX,MESGMOV AH,9INT 21HMOV AH,1INT 21H;接受字符MOV AH,4CHINT 21H;結(jié)束DELAY PROC PUSH CXPUSH DX;保護現(xiàn)場MOV DX,0100H;第二輪循環(huán)次數(shù)D1:MOV CX,08FFH;第一輪循環(huán)次數(shù) LOOP $ ;若 CX 不等于

21、零,跳轉(zhuǎn)至當前代碼地址的指令($=該指令在該代碼段的偏移地址)DEC DXJNZ D1POP DXPOP CX;現(xiàn)場還原RETDELAY ENDPSUB01:MOV AX,02H;0DH 為本行開頭,02H 輸出INT 21HMOV DL,0AH;0AH 為下一行輸出INT 21H16LEA DX,STR1;DX 輸入字符緩沖區(qū)首地址MOV AH,0AHINT 21H ;輸入一個字符串中斷MOV AH,02H;0DH 為本行開頭,02H 輸出MOV DL,0DHINT 21HMOV DL,0AH;0AH 為下一行輸出INT 21H;RETSUB02:CMP STR+1,2;系統(tǒng)鍵入的字符個數(shù)J

22、NB Y2JMP QUITY2:CALL LINE ;畫矩形框MOV DL,60-2;框內(nèi)長度MOV AL,STR1+1;字符長度SUB DL,ALMOV DH,0;DH 清零MOV CNT3,DXMOV BL,ALINC ALSHR AL,1;AL+1/2CBWMOV CNT2,AX;左半邊SUB BL,ALMOV BH,0MOV CNT4,BX;右半邊MOV BL,41Y3:MOV BP,ESPUSH DSPOP ESMOV DI,1000HMOV CX,CNT1JCXZ U1MOV AL,20HREP STOSBU1:LEA SI,BUF;MOV CX,CNT2;REP MOVSB;MO

23、V CX,CNT3JCXZ U2MOV AL,20HREP STOSB17U2:MOV CX,CNT4REP MOVSBMOV CX,CNT5JCXZ U3MOV AL,20HREP STOSBU3:SHOW:MOV ES,BPINC BL MOV AH,BL;設置形式白底黑字MOV SI,1000HMOV DI,LEFTMOV CX,60-2PPP:LODSBSTOSWLOOP PPPMOV AH,1INT 16HJNZ SSS ;按任意鍵,返回主菜單CALL DELAYCMP CNT3,0JNZ KK1HERE:MOV AL,1000BXOR BYTE PTR KK1+1,ALXOR BYTE PTR KK1+5,ALXOR BYTE PTR KK1+9,ALXOR BYTE PTR KK2-3,ALKK1:INC CNT1INC CNT5DEC CNT3CMP CNT3,0JZ KK2DEC CNT3KK2:CMP CNT1,0JZ HEREJMP Y3SSS:MOV STR+1,0QUIT: LEA SI,CNT118XOR AX,AXMOV CX,5KK3:MOV SI,AXINC SIINC SILOOP KK3XOR DI,DIMOV CX,80*25MOV AX,720HREP STOSW ;清全屏JM

溫馨提示

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

評論

0/150

提交評論