微機課程設(shè)計--字符串動畫加速減速_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論