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

下載本文檔

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

文檔簡介

1、學(xué) 號(hào): 0121211350313微機(jī)原理及接口技術(shù)課程設(shè)計(jì)題 目顯示姓名字樣的程序?qū)W 院自動(dòng)化學(xué)院專 業(yè)電氣工程及其自動(dòng)化班 級(jí)電氣1203姓 名指導(dǎo)教師2014年12月27日課程設(shè)計(jì)任務(wù)書學(xué)生姓名: 專業(yè)班級(jí): 電氣1203 指導(dǎo)教師: 工作單位: 自動(dòng)化學(xué)院 題 目: 顯示姓名字樣的程序 初始條件:編寫顯示“自己姓名”字樣的程序。并能由小到大,由大到小變化。按Q退出程序。要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體要求)設(shè)計(jì)任務(wù)及要求分析方案比較及認(rèn)證說明系統(tǒng)原理闡述硬件設(shè)計(jì)課題需要說明:硬件原理,電路圖,采用器件的功能說明軟件設(shè)計(jì)課題需要說明:軟件思想

2、,流程圖,源程序及程序注釋調(diào)試記錄及結(jié)果分析總結(jié)參考資料附錄:芯片資料或程序清單,軟件演示屏幕拷貝圖或硬件實(shí)物圖目錄 TOC o 1-4 h z u 1.課程任務(wù)及其要求分析 PAGEREF _Toc407548396 h 32.系統(tǒng)原理闡述 PAGEREF _Toc407548397 h 33.匯編語言程序設(shè)計(jì) PAGEREF _Toc407548398 h 43.1主程序設(shè)計(jì)及其原理分析 PAGEREF _Toc407548399 h 43.1.1設(shè)計(jì)思路 PAGEREF _Toc407548400 h 43.1.2流程圖 PAGEREF _Toc407548401 h 43.1.3主程序

3、 PAGEREF _Toc407548402 h 53.2各子程序原理分析 PAGEREF _Toc407548403 h 73.2.1三種字體輸出子程序及其功能說明 PAGEREF _Toc407548404 h 73.2.2延遲子程序及其功能說明 PAGEREF _Toc407548405 h 83.2.3清屏子程序及其功能說明 PAGEREF _Toc407548406 h 93.2.4換行子程序及其功能說明 PAGEREF _Toc407548407 h 94.程序測(cè)試記錄及其結(jié)果分析 PAGEREF _Toc407548408 h 105.小結(jié) PAGEREF _Toc4075484

4、09 h 116.參考文獻(xiàn) PAGEREF _Toc407548410 h 121.課程任務(wù)及其要求分析對(duì)任務(wù)書進(jìn)行分析可知,本課程設(shè)計(jì)的任務(wù)為用匯編語言設(shè)計(jì)顯示自己姓名的程序并且要求姓Q鍵退出程序。設(shè)計(jì)的基本要求為認(rèn)真編寫程序,并在規(guī)定的時(shí)間內(nèi)寫好課程設(shè)計(jì)報(bào)告書,報(bào)告書的基本要求為(1)設(shè)計(jì)任務(wù)及要求分析(2)系統(tǒng)原理闡述(3)軟件思想,流程圖,源程序及程序注釋(4)調(diào)試記錄及結(jié)果分析(5)總結(jié)(6)參考資料,(7)最后附上本科生課程設(shè)計(jì)評(píng)定表并且在規(guī)定的時(shí)間內(nèi)完成課程設(shè)計(jì)報(bào)告書,提交報(bào)告書并進(jìn)行答疑2.系統(tǒng)原理闡述分析設(shè)計(jì)任務(wù)及要求可以得知編寫此匯編程序的基本原理,編寫一個(gè)主程序和若干個(gè)子

5、程序(延時(shí)子程序、換行子程序、清屏子程序、顯示姓名子程序)來完成設(shè)計(jì)任務(wù)所要求的功能,用這種方法比較簡單,主程序完成的功能為:首先要輸出開始語句,提示用戶輸入字體規(guī)格,取得字體規(guī)格后調(diào)用輸出姓名子程序,為了使我們能夠看到自己的名字必須調(diào)用延時(shí)子程序以增加顯示的時(shí)間,調(diào)用結(jié)束馬上輸出結(jié)束語句,提示用戶是按Q退出還是按N繼續(xù)輸出姓名,當(dāng)?shù)玫絅以后必須馬上清屏,然后再次調(diào)用提示信息子程序和顯示姓名子程序,換行子程序的原理為通過int21h的02h功能來完成,清屏子程序的原理為通過int10h的06h的屏幕上卷功能來完成清屏通過AL可以設(shè)計(jì)一次清屏的行數(shù)。顯示姓名子程序的原理為首先通過漢字取模軟件完成

6、姓名漢字的編碼,經(jīng)過的方格用1表示,沒有經(jīng)過的方格用0表示,然后應(yīng)用int10h的02號(hào)功能完成字符的顯示,1輸出為*,0輸出空格,將主程序和各個(gè)子程序組合在一起即可完成匯編程序的編制。3.匯編語言程序設(shè)計(jì)3.1主程序設(shè)計(jì)及其原理分析3.1.1設(shè)計(jì)思路根據(jù)設(shè)計(jì)任務(wù)及要求可知,匯編語言的基本思想為編寫一個(gè)主程序和若干個(gè)子程序,各子程序分別為:延時(shí)子程序、換行子程序、清屏子程序、顯示姓名子程序,在程序運(yùn)行時(shí)用主程序分別調(diào)用各個(gè)子程序,即可完成匯編語言程序的編制。因?yàn)楦鱾€(gè)子程序是相互獨(dú)立的,這樣可以先依靠主程序來完成一部分功能,然后通過增加子程序逐漸增加系統(tǒng)的功能,最終達(dá)到所要求的功能。3.1.2流

7、程圖3.1.3主程序data segment ;數(shù)據(jù)段 yang16 DB 08H,00H,88H,1FH,08H,08H,08H,04H,3FH,02H,08H,01H,8CH,7FH,1CH,49H,2AH,49H,2AH,49H,89H,48H,88H,44H,48H,44H,28H,42H,08H,29H,88H,10H ;楊16x16 min16 DB 02H,04H,02H,04H,0FEH,04H,01H,7CH,7EH,22H,42H,22H,4AH,22H,52H,25H,0FFH,15H,42H,14H,49H,08H,51H,08H,0FFH,14H,40H,12H,28

8、H,21H,90H40H;敏16x16 yang24 DB 00H,00H,00H,04H,00H,00H,07H,00H,20H,06H,3FH,0F0H,06H,00H,60H,06H,00H,0C0H,06H,41H,00H,3FH,82H,00H,06H,04H,00H,06H,08H,00H,07H,3FH,0FCH,0EH,92H,6CH,0EH,0C6H,4CH,1EH,44H,0CCH,16H,08H,8CH,26H,11H,88H,26H,21H,08H,46H,42H,08H,06H,04H,08H,06H,08H,08H,06H,10H,18H,06H,60H,0F0H,

9、06H,00H,20H,00H,00H,00H ;楊24x24 min24 DB 00H,00H,00H,00H,00H,00H,06H,00H,0C0H,0CH,01H,80H,08H,0DH,80H,1FH,0F1H,00H,10H,01H,00H,28H,13H,0FCH,2FH,0FBH,18H,49H,15H,10H,09H,95H,10H,08H,99H,10H,08H,15H,10H,3FH,0F8H,90H,1AH,10H,0B0H,11H,10H,0A0H,11H,90H,60H,11H,30H,60H,3FH,0FCH,60H,10H,20H,0B0H,00H,21H,18

10、H,01H,0E2H,0EH,00H,0CCH,04H,00H,00H,00H ;敏24x24 yang32 DB 00H,00H,00H,00H,00H,00H,00H,00H,01H,00H,00H,00H,01H,0C0H,00H,80H,01H,87H,0FFH,0C0H,01H,82H,01H,0C0H,01H,80H,03H,00H,01H,80H,06H,00H,01H,88H,0CH,00H,3FH,0FCH,18H,00H,01H,80H,30H,00H,01H,80H,60H,00H,01H,80H,0C0H,00H,03H,0C1H,80H,18H,03H,0E3H,0F

11、FH,0FCH,03H,0B8H,31H,98H,07H,98H,21H,98H,05H,98H,63H,18H,0DH,88H,0C3H,18H,09H,80H,86H,18H,19H,81H,8CH,18H,11H,82H,0CH,18H,21H,84H,18H,10H,41H,88H,30H,30H,01H,90H,60H,30H,01H,80H,0C0H,30H,01H,81H,80H,30H,01H,82H,08H,70H,01H,8CH,07H,0E0H,01H,90H,01H,0C0H,01H,80H,00H,80H,00H,00H,00H,00H ;楊32x32 min32 D

12、B 00H,00H,00H,00H,00H,00H,00H,00H,03H,00H,04H,00H,03H,80H,07H,00H,03H,00H,06H,00H,06H,00H,0CCH,00H,07H,0FFH,0ECH,00H,04H,00H,0CH,00H,0CH,00H,08H,00H,1CH,01H,18H,18H,17H,0FFH,9FH,0FCH,26H,01H,98H,20H,46H,41H,28H,20H,06H,21H,28H,20H,06H,31H,48H,60H,06H,33H,88H,60H,04H,03H,64H,60H,3FH,0FFH,0F4H,60H,0CH

13、,03H,04H,40H,0CH,83H,04H,0C0H,0CH,63H,02H,0C0H,0CH,23H,02H,0C0H,0CH,23H,03H,80H,08H,03H,41H,80H,18H,03H,0E3H,80H,1FH,0FFH,0F6H,0C0H,00H,02H,04H,60H,00H,06H,08H,70H,00H,7EH,30H,3CH,00H,1CH,40H,18H,00H,18H,80H,00H,00H,00H,00H,00H ;敏32x32 BeginWord db Please Choose a print size 1,2 or 3,$ ;開始語句 QuitWor

14、d db Do you want to exit ? Q/N,$ ;結(jié)束語句 KongHang db ,$ ;輸出8位空格data endscode segment ;代碼段 assume cs:code,ds:datastart: MOV AX,DATA MOV DS,AXagain: lea dx,BeginWord ;程序開始語句,選擇字體 mov ah,9 int 21h call CTLFmov ah,1int 21hcall CTLFcmp al,3jz zhi3cmp al,2jz zhi2cmp al,1jz zhi1jmp againzhi1: call print1 ;輸出

15、1號(hào)字體 jmp choosezhi2: call print2 ;輸出2號(hào)字體 jmp choosezhi3: call print3 ;輸出3號(hào)字體choose: call delay ;結(jié)束選擇 lea dx,QuitWord mov ah,9 int 21h call CTLF mov ah,1 int 21h call CTLF cmp al,Q jz Quit cmp al,N jnz choose call qingping jmp againQuit: mov ax,4c00h int 21hcode ends end start3.2各子程序原理分析3.2.1三種字體輸出子程

16、序及其功能說明以2號(hào)字體輸出子程序?yàn)槔齪rint2 proc near ;輸出2號(hào)字體(24x24)子程序lea si,yang24 ;置偏移地址lea di,min24mov cx,24 ;列循環(huán)lie2: push cx mov cx,3 hangy2: push cx ;第一個(gè)字行循環(huán) mov bl,byte ptrsi mov cx,8 loopy2: shl bl,1 ;移位判斷輸出類型 jnc c1 mov dl,2ah mov ah,2 int 21h jmp d1c1: mov dl,20h mov ah,2 int 21hd1: loop loopy2 pop cx inc

17、si loop hangy2lea dx,KongHang ;輸出兩字中間8位空格mov ah,9int 21hmov cx,3hangm2: push cx ;第二個(gè)字行循環(huán) mov bl,byte ptrdi mov cx,8loopm2: shl bl,1 ;移位判斷輸出類型 jnc c2 mov dl,2ah mov ah,2 int 21h jmp d2c2: mov dl,20h mov ah,2 int 21hd2: loop loopm2 pop cx inc di loop hangm2call CTLF ;換行pop cxloop lie2 retprint2 endp3.

18、2.2延遲子程序及其功能說明delay proc near ;延遲子程序 push cx mov cx,0d000h loop $ pop cx retdelay endp3.2.3清屏子程序及其功能說明qingping proc ;清屏子程序mov ah,06hmov al,0mov bh,0fh ;黑底白字mov ch,0 ;從0行0列到40行75列清屏mov cl,0mov dh,40mov dl,75int 10hmov dl,0 ;光標(biāo)在左上角mov dh,0mov bh,0mov ah,2int 10hretqingping endp3.2.4換行子程序及其功能說明CTLF PROC NEAR ;換行子程序 PUSH AX PUSH DX MOV AH,02H ;輸出單個(gè)字符. MOV DL,0DH ;0D是回車符的ASCII碼. INT 21H ;輸出. MOV AH,02H MOV DL,0AH ;0A是換行符的ASCII碼. INT 21H POP DX POP AX RETCTLF ENDP4.程序測(cè)試記錄及其結(jié)果分析1號(hào)字體顯示2號(hào)字體顯示3號(hào)字體顯示5.小結(jié)通過這次課程設(shè)計(jì)

溫馨提示

  • 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)論