版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 一、課程設(shè)計的性質(zhì)和目的</p><p> 進(jìn)一步掌握所學(xué)的微機知識,通過所學(xué)的知識編寫程序,實現(xiàn)簡單的動畫顯示過程。培養(yǎng)綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力。</p><p><b> 二、課程設(shè)計的要求</b></p><p><b> 1.菜單</b></p
2、><p> 內(nèi)容包括:①輸入字符串;②字符串動畫顯示;③退出。</p><p><b> 2.輸入字符串</b></p><p> 選擇該項后,可以輸入一個字符串。</p><p><b> 3.字符串動畫顯示</b></p><p> 所顯示字符串在一矩形框內(nèi)移動,按
3、“+”“-”可實現(xiàn)加速,減速功能。</p><p> 4. 退出,返回DOS。</p><p> 三、主要儀器設(shè)備及軟件</p><p> PC機,輕松匯編等.</p><p> 四、課題分析及設(shè)計思路</p><p><b> 軟件設(shè)計過程</b></p><p&g
4、t; ?。?)采用模塊化程序結(jié)構(gòu)設(shè)計軟件,可將整個軟件分成若干功能模塊。</p><p> ?。?)畫出程序流程圖。</p><p> (3)根據(jù)流程圖,編寫源程序。</p><p> ?。?)上機調(diào)試程序。</p><p> 源程序所運用到的指令:</p><p> DOS鍵盤功能調(diào)用:</p>
5、<p> 【功能號】0AH——從鍵盤輸入字符串;</p><p> 【功能號】0CH——清楚鍵盤緩存區(qū)</p><p> 【功能號】09H——顯示一個字符串</p><p> 【功能號】4CH——返回操作系統(tǒng)功能調(diào)用</p><p> 指令中斷:INT n</p><p> 匯編語言程序設(shè)計:順
6、序程序設(shè)計,循環(huán)程序設(shè)計,子程序設(shè)計;</p><p> 下圖為各程序流程圖:</p><p><b> N</b></p><p><b> Y</b></p><p><b> NN</b></p><p><b> YY&l
7、t;/b></p><p><b> 主程序流程圖</b></p><p><b> 矩形框繪畫流程圖</b></p><p><b> N</b></p><p><b> N</b></p><p><b&g
8、t; Y</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> N
9、</b></p><p><b> Y</b></p><p><b> Y</b></p><p> 加減速流程圖 字符串移位流程圖</p><p> 五、程序主要代碼與分析(關(guān)鍵代碼要有注釋):</p><p&
10、gt; CODE SEGMENT ;代碼段開始</p><p> ASSUME CS:CODE,DS:CODE</p><p> START: MOV AX,CODE</p><p> MOV DS,AX ;裝填代碼段</p><p> MOV A
11、X,0B800H</p><p> MOV ES,AX</p><p> CLD ;清除方向標(biāo)志</p><p> AGAIN: MOV AX,3</p><p> INT 10H ; 顯示</p><p> LEA
12、 DX,MENU ;目標(biāo)地址傳送,將主菜單有效地址送入DX</p><p> MOV AH,9</p><p> INT 21H ;九號系統(tǒng)功能調(diào)用,輸出字符串</p><p> INPUT: MOV AH,0</p><p> INT 16H</
13、p><p> CMP AL,'1'</p><p> JNZ CP2</p><p> CALL SUB01 ;輸入一個字符串</p><p> JMP INPUT</p><p> CP2: CMP AL,'2
14、9; ; 比較指令</p><p> JNZ CP3 ; 不為零時跳轉(zhuǎn)</p><p> CALL SUB02 ; 調(diào)用子程序,字符串左右移動</p><p> JMP AGAIN ;轉(zhuǎn)移指令,返回到主菜單</p><p> CP3: CMP
15、 AL,'3' ;返回DOS</p><p> JNZ INPUT</p><p> LEA DX,MESG</p><p> MOV AH,9</p><p> INT 21H</p><p> MOV AH,1
16、</p><p> INT 21H ; 一號系統(tǒng)功能調(diào)用,鍵盤輸入單字符</p><p> MOV AH,4CH</p><p> INT 21H</p><p> SPEED PROC</p><p> PUSH AX</p>
17、<p> PUSH DX</p><p> MOV AH,6</p><p> MOV DL,0FFH</p><p> INT 21H</p><p> SPEEDUP: CMP AL,'+' ;"+"加速運動<
18、;/p><p> JNZ SPEEDDOWN</p><p> SUB DLAY1,500</p><p> CMP DLAY1,500</p><p> JNB EXIT</p><p> MOV DLAY1,500</p><p&
19、gt; JMP EXIT</p><p> SPEEDDOWN: CMP AL,'-' ;"-"減速運動</p><p> JNZ EXIT</p><p> ADD DLAY1,500</p><p> CMP DLAY1,
20、50000</p><p> JB EXIT</p><p> MOV DLAY1,50000</p><p> EXIT: MOV AH,0CH</p><p> INT 21H</p><p> POP DX</p><p
21、> POP AX</p><p><b> RET</b></p><p> SPEED ENDP </p><p> DELAY PROC ;定義子程序的偽指令</p><p> PUSH CX ;壓棧指令</p>
22、<p> PUSH DX</p><p> MOV DX,DLAY1</p><p> D1: MOV CX,100</p><p> L1: CALL SPEED</p><p> LOOP L1</p><p> DEC
23、 DX ;減一指令</p><p> JNZ D1</p><p> POP DX ;出棧指令</p><p> POP CX</p><p> RET ; 返回指令</p><p> DELAY
24、ENDP</p><p> SUB01: PUSH AX</p><p> MOV AX,0E0DH</p><p> INT 10H</p><p> MOV AL,0AH</p><p> INT 10H</p><p>
25、 LEA DX,STR1</p><p> MOV AH,0AH</p><p> INT 21H ;十號系統(tǒng)功能調(diào)用,輸入字符串</p><p> MOV AX,0E0AH</p><p> INT 10H</p><p> PO
26、P AX</p><p><b> RET</b></p><p> SUB02: PUSH AX</p><p> PUSH DX</p><p> PUSH CX</p><p> PUSH DX</p><p
27、> CMP BUF,0DH</p><p> JZ QUIT</p><p> CALL LINE ;畫矩形框</p><p> LEA SI,STR1</p><p> INC SI ;加一指令</p><p>
28、; MOV DX,SI</p><p> MOV AL,' '</p><p> XCHG AL ,[SI] ;數(shù)據(jù)交換指令</p><p> CBW ;字節(jié)擴展指令</p><p> MOV BX,AX</p>&
29、lt;p> INC BX</p><p> MOV BYTE PTR [BX+SI],' '</p><p> INC BX</p><p> PUSH BX</p><p> SHL BX,1 ; 邏輯左移指令</p>&l
30、t;p> SUB RIGHT,BX ; 不帶借位的減法指令</p><p> POP BX</p><p> MOV BP,LEFT</p><p><b> SHOW:</b></p><p> MOV SI,DX</p><p&
31、gt; MOV CX,BX</p><p> MOV DI,BP</p><p> NEXT: MOVSB ;字符串傳送指令</p><p> MOV AL,2</p><p> STOSB ;存字符串指令</p>&
32、lt;p> LOOP NEXT</p><p> MOV AH,1</p><p> INT 16H</p><p> JNZ QUIT ;按任意鍵,返回主菜單 </p><p> CALL DELAY</p><p> ADD
33、 BP,NUM</p><p> CMP BP,RIGHT</p><p> JB T1 ; 低于也不等于轉(zhuǎn)移</p><p> MOV NUM,-2</p><p> JMP HERE</p><p> T1: CMP
34、 BP,LEFT</p><p> JA HERE</p><p> MOV NUM,2</p><p> HERE: JMP SHOW ; 自跳轉(zhuǎn)</p><p> SSS: MOV BUF,0DH</p><p> QUIT: XOR
35、 DI,DI</p><p> MOV CX,80*25</p><p> MOV AX,720H</p><p> REP STOSW ;清全屏</p><p><b> RET</b></p><p> LINE:
36、 ;矩形框</p><p> MOV DI,(18*80+10)*2</p><p> MOV AL,201 ;左上角</p><p> MOV AH,4</p><p> STOSW ; 存入串指令的字操作</p&g
37、t;<p> MOV CX,60-2</p><p> MOV AL,205 ;橫框</p><p> REP STOSW</p><p> MOV AL,187 ;右上角</p><p><b> STOSW</b></p
38、><p> ADD DI,20*2</p><p> MOV AL,186 ;豎框</p><p><b> STOSW</b></p><p> MOV LEFT,DI</p><p> MOV CX,60-2</p>
39、<p> MOV AL,20H ;空格</p><p> REP STOSW</p><p> MOV RIGHT,DI</p><p> MOV AL,186 ;豎框</p><p><b> STOSW</b></p>
40、;<p> ADD DI,20*2</p><p> MOV AL,200 ;左下角</p><p><b> STOSW</b></p><p> MOV CX,60-2</p><p> MOV AL,205 ;橫框</
41、p><p> REP STOSW</p><p> MOV AL,188 ;右下角</p><p><b> STOSW</b></p><p><b> RET</b></p><p> MENU DB 5 DUP(0
42、AH)</p><p> DB 31 DUP(' '),'MAIN MENU',0DH,0AH</p><p> DB 25 DUP(' '),201,21 DUP(205),187,0DH,0AH</p><p> DB 25 DUP(' '),186,
43、' 1.Input a String ...',186,0DH,0AH</p><p> DB 25 DUP(' '),186,' 2.Display Model ... ',186,0DH,0AH</p><p> DB 25 DUP(' '),186,' 3.Return to DO
44、S ... ',186,0DH,0AH</p><p> DB 25 DUP(' '),200,21 DUP(205),188,0DH,0AH</p><p> DB 28 DUP(' '),'Choice(1,2,3):$'</p><p> MESG DB
45、0DH,0AH,0DH,0AH,9,'Press any key to exit ...$'</p><p> NUM DW 2</p><p> LEFT DW 0</p><p> RIGHT DW 0</p><p> STR1 DB 21</
46、p><p> DB 0</p><p> BUF DB 0DH,20 DUP(0)</p><p> DLAY1 DW 2000</p><p> CODE ENDS</p><p> END START</p><p><
47、b> 六、實驗結(jié)果截圖</b></p><p> 進(jìn)入主菜單,按“1”,輸入字符串:</p><p> 按“2”,字符串移動:</p><p><b> 按“3”,退出:</b></p><p><b> 七、心得體會</b></p><p>
48、通過本次微機原理與接口技術(shù)課程設(shè)計,培養(yǎng)了我們各方面的能力。我們更好的學(xué)會了把課堂上的理論知識運用到實踐中,通過解決實際問題,不斷地找出自己所學(xué)知識中的薄弱環(huán)節(jié)。使課堂上學(xué)習(xí)的理論知識得到了進(jìn)一步的優(yōu)化、補充,使自己所學(xué)知識變得更加完善。通過對程序的不斷調(diào)試修改,不但使自己的知識面有所拓寬,同時也提高了自己敢于動手、善于動手的能力和獨立的分析問題、解決問題的能力,也使自己對微機原理與接口技術(shù)這門課程的學(xué)習(xí)興趣有所增加,為以后更好的學(xué)習(xí)這
49、門課程,以及與本課程有關(guān)的相關(guān)課程打下了堅實的基礎(chǔ)。</p><p> 感謝學(xué)院給了我們這一次課程設(shè)計的機會,讓我們受益匪淺,感謝老師在我們遇到問題時耐心的指導(dǎo),希望今后能有更多的這種親身實踐的機會。</p><p><b> 參考文獻(xiàn):</b></p><p> 《微型計算機系統(tǒng)原理及應(yīng)用》,周明德,清華大學(xué)出版社。</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機原理課程設(shè)計---字符串動畫顯示
- 微機原理課程設(shè)計--字符串分類統(tǒng)計
- 微機原理課程設(shè)計報告-字符串分類統(tǒng)計
- 課程設(shè)計--- 字符串排序
- 課程設(shè)計--字符串類
- 課程設(shè)計--字符串的操作
- 字符串處理系統(tǒng)課程設(shè)計
- c語言課程設(shè)計--字符串類
- 課程設(shè)計--查找字符串中的指定字符
- 課程設(shè)計--實現(xiàn)字符串的多種操作
- c++課程設(shè)計報告--字符串處理
- c語言課程設(shè)計(字符串函數(shù)包)
- 匯編課程設(shè)計-字符串查找與替換
- c課程設(shè)計---字符串處理系統(tǒng)
- 微機原理與接口技術(shù)課程設(shè)計---字符串程序設(shè)計
- c++課程設(shè)計---字符串類的設(shè)計
- cmd批處理替換字符串、截取字符串、擴充字符串
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--字符串的操作
- 字符串類課程設(shè)計說明書
- 數(shù)電課程設(shè)計--字符串發(fā)生器
評論
0/150
提交評論