微機原理與匯編語言程序設(shè)計課程設(shè)計報告_第1頁
微機原理與匯編語言程序設(shè)計課程設(shè)計報告_第2頁
微機原理與匯編語言程序設(shè)計課程設(shè)計報告_第3頁
微機原理與匯編語言程序設(shè)計課程設(shè)計報告_第4頁
微機原理與匯編語言程序設(shè)計課程設(shè)計報告_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計報告( 2012 - 2013年度第 一 學(xué)期)名 稱:微機原理與匯編語言程序設(shè)計課程設(shè)計 題 目: 匯編語言編程實踐及電子鐘設(shè)計 院 系: 計算機系 班 級: 信安1001 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師: 設(shè)計周數(shù): 2 成 績: 日期:2013 年 1 月 18 日微機原理與匯編語言程序設(shè)計課程設(shè)計評分表實驗結(jié)果(60分) 號碼本程序完善(5分) 顯示器I/O程序設(shè)計(10分)中斷程序設(shè)計(5分)發(fā)聲系統(tǒng)設(shè)計(10分)鍵盤程序設(shè)計(10分)電子鐘設(shè)計(20分)實驗報告(30分)報告規(guī)范完整、符合要求,工作量大,文檔邏輯性強,表述流暢(24-30分)報告較規(guī)范完整、基本符合要求,工

2、作量適中,文檔邏輯性較強,表述較流暢(15-23分)報告不規(guī)范完整、不符合要求、文檔邏輯性差,表述不清(0-14分)實驗過程(10分)實驗認真,主動性強,反映出較強的綜合分析、解決問題的能力,出勤率高,無遲到早退現(xiàn)象(7-10分)實驗較認真,較積極主動,反映出一定的綜合分析、解決問題的能力,出勤率較高,較少遲到早退(4-6分)實驗不認真主動,分析解決問題能力一般,出勤率低(1-3分)總成績(0-100分)優(yōu)(90-100分)良(80-89分)中(70-79分)通過(60-69分)不通過(60分)任 務(wù) 書一、 目的與要求本課程設(shè)計包含軟件部分和硬件部分兩個環(huán)節(jié)。軟件部分:進一步熟悉匯編語言設(shè)計

3、方法和步驟,完成在有限的課內(nèi)實驗環(huán)節(jié)無法涉及到的具有綜合設(shè)計性的軟件實驗,如中斷程序設(shè)計、I/O程序設(shè)計、宏設(shè)計等。硬件部分:利用偉福試驗設(shè)備中的8253可編程定時/計數(shù)器,8259中斷控制器,8255可編程并行接口芯片和七段數(shù)碼管等設(shè)計一個電子鐘電路,并編制一個程序使電子鐘能正常運行。 通過軟硬件環(huán)節(jié)的設(shè)計和調(diào)試,鞏固所學(xué)知識,增強動手能力,提高綜合性工程素質(zhì)。二、 主要內(nèi)容軟件部分:1.熟悉編程環(huán)境,完善前期 號碼本設(shè)計的功能;2.顯示器I/O程序設(shè)計,完成窗口控制程序;3.中斷程序設(shè)計,完成內(nèi)部中斷服務(wù)程序和外部中斷服務(wù)程序設(shè)計;4.發(fā)聲系統(tǒng)設(shè)計;5.鍵盤程序設(shè)計。 硬件部分:1.總體模

4、塊設(shè)計,查閱資料,設(shè)計主程序和中斷服務(wù)程序的流程;2.詳細設(shè)計,完成軟硬件模塊的框架。3.調(diào)試,對前述工作進一步細化;4.完善功能,實現(xiàn)電子鐘的準確運行,并進一步改進其功能;5.驗收、實驗報告撰寫。三、 進度計劃序號設(shè)計(實驗)內(nèi)容完成時間備注1熟悉環(huán)境,完善 號碼本設(shè)計的功能半天2顯示器I/O程序設(shè)計1天3中斷程序設(shè)計1天4發(fā)聲系統(tǒng)設(shè)計1天5鍵盤程序設(shè)計1天6驗收、實驗報告總結(jié)、撰寫半天7總體模塊設(shè)計半天8詳細設(shè)計1天半9調(diào)試1天10完善功能1天11系統(tǒng)驗收、實驗報告撰寫1天四、 設(shè)計(實驗)成果要求1.軟件環(huán)節(jié)要求掌握各環(huán)節(jié)的設(shè)計原理、能實現(xiàn)各環(huán)節(jié)要求的功能。2.硬件環(huán)節(jié)要求利用相關(guān)接口芯

5、片,實現(xiàn)電子鐘的準確運行等功能。3.總結(jié)實驗,撰寫實驗報告。五、 考核方式實驗結(jié)果(60)+實驗報告(30)+實驗過程表現(xiàn)(10)1驗收:完成課程設(shè)計題目后由指導(dǎo)老師驗收,學(xué)生匯報上機題目完成情況,回答提出的問題。2撰寫課程設(shè)計實驗報告:完成課程設(shè)計題目后,應(yīng)認真撰寫課程設(shè)計報告,報告應(yīng)內(nèi)容全面、格式規(guī)范。 學(xué)生姓名: 指導(dǎo)教師: 年 月 日實驗一 號碼本設(shè)計完善一、 課程設(shè)計(綜合實驗)的目的與要求1. 熟練掌握匯編語言程序設(shè)計環(huán)境,根據(jù)前期掌握程度,可選擇Masm for windows集成實驗環(huán)境(實驗室配備),或自行安裝masm5.0、masm6.0、Emu8086,Tasm等,軟件開

6、發(fā)環(huán)境可由學(xué)生根據(jù)使用愛好自選。2 .根據(jù)課內(nèi)實驗驗收時指導(dǎo)教師提出的意見,以及和同學(xué)討論的結(jié)果,設(shè)計實現(xiàn)一個功能比較完善的 號碼本,并在設(shè)計中體現(xiàn)自己的工作特色,即具備和其他設(shè)計不同之處。二、 設(shè)計(實驗)正文1. 定義 本的結(jié)構(gòu)體2. 刪除子程序CANCEL PROC;刪除記錄的過程 newline MOV DX,OFFSET CZTS MOV AH,9H INT 21H MOV AH,01H;輸入學(xué)號 INT 21H MOV BJ1,AL MOV AH,01H INT 21H MOV BJ2,AL MOV BX,0 MOV DI,30ALCZ9:MOV SI,0;先檢查是否有要刪除的數(shù)據(jù)

7、 MOV AH,BJ1 CMP AH,STUBX.NUMSI JNE ALCZ8 INC SI MOV AL,BJ2 CMP AL,STUBX.NUMSI JE ALSC1;有此學(xué)號就轉(zhuǎn)到刪除它 ALCZ8:ADD BX,TYPE STU DEC DI CMP DI,0 JNE ALCZ9 newline MOV AH,9H MOV DX,OFFSET NO;沒有就告知用戶 INT 21H newline CALL TO_DOES ALSC1:MOV BX,0 LSC4:MOV SI,0 MOV AH,BJ1 CMP AH,STUBX.NUMSI JNE LSC1 INC SI MOV AL,

8、BJ2 CMP AL,STUBX.NUMSI JE LSC2;找到要刪除的學(xué)生就刪除 LSC1:ADD BX,TYPE STU JMP LSC4 LSC2:MOV SI,0;刪除學(xué)生資料,即把它清零 MOV STUBX.NUMSI,0 INC SI MOV STUBX.NUMSI,0 MOV SI,0 MOV CX,20 LSC3:MOV STUBX.NAMSI,0 INC SI LOOP LSC3 MOV SI,0 MOV CX,12SC1: MOV STUBX.TLESI, INC SI LOOP SC1 newline MOV AH,9 MOV DX,OFFSET SCCG ;顯示刪除成

9、功 INT 21H newline RETCANCEL ENDP3. 查找記錄FIND PROC;查找記錄的過程 newline MOV DX,OFFSET CZTS MOV AH,9H INT 21H MOV AH,01H;輸入查找的學(xué)號 INT 21H MOV BJ1,AL MOV AH,01H INT 21H MOV BJ2,AL newline MOV BX,0 MOV DI,30;循環(huán)次數(shù) LCZ9: MOV SI,0;先檢查是否有要查找數(shù)據(jù) MOV AH,BJ1 CMP AH,STUBX.NUMSI JNE LCZ8 INC SI MOV AL,BJ2 CMP AL,STUBX.N

10、UMSI JE LCZ7LCZ8: ADD BX,TYPE STU DEC DI CMP DI,0 JNE LCZ9 MOV AH,9H;沒有數(shù)據(jù)就告知用戶 MOV DX,OFFSET NO INT 21H newline CALL TO_DOESLCZ7: CALL LINE;有要找的學(xué)號時先輸出欄目名稱 newline MOV DX,OFFSET ML MOV AH,9H INT 21H newline mov ah,02h; MOV DL, MOV DL, INT 21H MOV BX,0;從第1個學(xué)生開始查找LCZ4: MOV SI,0 MOV AH,BJ1 CMP STUBX.NUM

11、SI,AH JNE LCZ5 INC SI MOV AL,BJ2 CMP STUBX.NUMSI,AL JZ LCZ2LCZ5: ADD BX,TYPE STU JMP LCZ4LCZ2: MOV SI,0;開始輸出要找的學(xué)生的資料 MOV AH,02H MOV DL,STUBX.NUMSI;輸出學(xué)號 INT 21H INC SI MOV DL,STUBX.NUMSI INT 21H MOV CX,4;輸出空格 MOV AH,02HHG: MOV DL, INT 21H LOOP HG MOV SI,0LCZ3: MOV DL,STUBX.NAMSI;輸出姓名 INT 21H INC SI C

12、MP STUBX.NAMSI,0 JNE LCZ3 MOV CX,20 SUB CX,SI;輸出空格以便使數(shù)據(jù)輸出時對齊 HG4: MOV DL, INT 21H LOOP HG4 MOV SI,0LDY1: MOV DL,STUBX.TLESI;輸出 號碼 CMP DL, JE JJB INT 21H INC SI JMP LDY1JJB: newline CALL LINE newline CALL TO_DOES RETFIND ENDPSKIM PROC ;瀏覽記錄的過程 newline MOV BX,0 MOV DI,30YY1: MOV SI,0;檢查是否一個數(shù)據(jù)都沒有 CMP S

13、TUBX.NAMSI,0 JNE KK1;有數(shù)據(jù)時轉(zhuǎn)輸出 ADD BX,TYPE STU DEC DI CMP DI,0 JNE YY1 MOV AH,9H;沒有就告知用戶 MOV DX,OFFSET NODA INT 21H newline CALL TO_DOESKK1: CALL LINE newline MOV AH,9H;先輸出欄目名稱 MOV DX,OFFSET ML INT 21H newline MOV BX,0 MOV DI,30LL1: MOV SI,0;開始輸出所有學(xué)生資料 CMP STUBX.NAMSI,0 JNZ PP1 ADD BX,TYPE STU DEC DI

14、CMP DI,0 JNE LL1 JMP DOES10PP1: MOV SI,0 MOV DL, INT 21H MOV DL, INT 21H MOV DL,STUBX.NUMSI;輸出學(xué)號 INT 21H INC SI MOV DL,STUBX.NUMSI;輸出學(xué)號 INT 21H MOV SI,0 MOV CX,4 MOV AH,02H HG3: MOV DL, INT 21H LOOP HG3NA1: MOV DL,STUBX.NAMSI;輸出姓名 INT 21H INC SI CMP STUBX.NAMSI,0 JNZ NA1 MOV CX,20 SUB CX,SIHG2: MOV

15、DL, INT 21H LOOP HG2 MOV SI,0 LDY2: MOV DL,STUBX.TLESI;輸出 號碼 CMP DL, JE JJ1 INT 21H INC SI JMP LDY2JJ1: newline ADD BX,TYPE STU DEC DI CMP DI,0 JNE LL1DOES10:CALL LINE newline CALL TO_DOES RETSKIM ENDP三、 課程設(shè)計(綜合實驗)總結(jié)或結(jié)論 通過本次課程設(shè)計,進一步掌握了匯編的程序設(shè)計方法,對原來學(xué)過的和沒學(xué)過的知識都有了較深的理解,也深刻體會到用匯編語言編寫代碼卻是不容易,匯編好幾行語句在高級語言

16、中只需要一條就可以完成,但事物總有兩面行,存在即具其合理性,asm的優(yōu)越的性能(時間和空間),高級語言是望塵莫及的,所以學(xué)號匯編也是為我們以后的成功奠定基礎(chǔ)。相信通過這次匯編的課程實際,自己的分析問題和處理問題的能力都有了一次不小的提高,收獲不少。同時也要感謝在課程設(shè)計中給予我?guī)椭睦蠋?。此次課程設(shè)計目的已經(jīng)達到。實驗二:顯示器I/O程序設(shè)計一 課程設(shè)計(綜合實驗)的目的與要求示器I/O程序設(shè)計,完成屏幕窗口控制程序。要求在屏幕上開出三個窗口,它們的左上角和右下角的坐標(biāo)分別是(5,10),(15,30)和(5,50),(15,70)和(18,15),(22,65),如從鍵盤輸入字符,則顯示在右

17、窗口,同時也顯示在下窗口的最下面一行。若需要將字符顯示于左窗口,則先按下鍵,接著再從鍵盤輸入字符,字符就會從左窗口的最下行開始顯示,同時下窗口也顯示出左窗口的內(nèi)容。如果再按下鍵,輸入字符就會接在先前輸入的字符之后顯示出來。當(dāng)一行字符顯示滿后,窗口自動向上卷動一行,輸入字符繼續(xù)顯示與最低一行,窗口最高一行向上卷動后消失。二 設(shè)計(實驗)正文I/O窗口中自己達到的目的有:1.回車:通過獲取回車鍵的接通碼進入該程序段,進行卷一行,且光標(biāo)設(shè)置,并進行分左右窗口設(shè)置,跳轉(zhuǎn)不同。ENTERHUAN: SCROLL 18,15,22,65,1 MOV DWY,15 CMP WINDOWNUM,0 JZ ON

18、E SCROLL 5,50,15,70,1 POS_CURSE 15,50 MOV RY,50 mov rx,15 JMP INPUTONE: SCROLL 5,10,15,30,1 POS_CURSE 15,10 MOV LY,10 mov lx,15 JMP INPUT 2.刪除:通過int 10功能中03H獲取光標(biāo)位置,通過卷行,向前卷動,以達到刪除效果。DEL: mov ah,03h int 10h dec dl push dx SCROLL dh,dl,dh,dl,0 pop dx pos_curse dh,dl mov ry,dl jmp input三 課程設(shè)計(綜合實驗)總結(jié)或結(jié)

19、論此實驗中是在別人的基礎(chǔ)上進行改動,雖然自己編寫的程序不太長,但是仍然存在很多困難。并且在此程序中仍然存在錯誤,如刪除中,向前滾動,并不能達到刪除,會出現(xiàn)輸出第二個字母的時候向后跳顯示,只是屏幕上顯示刪除,實際內(nèi)存中并沒刪除。并且并沒有判斷到窗口的最左行想上一行跳。實驗三:中斷程序設(shè)計一 課程設(shè)計(綜合實驗)的目的與要求中斷程序設(shè)計,完成內(nèi)部中斷服務(wù)程序和外部中斷服務(wù)程序設(shè)計。具體要求為:(1).編寫一個內(nèi)部中斷服務(wù)程序,使其能夠顯示以“0”結(jié)尾的字符串(利用顯示器功能調(diào)用INT 10H)。字符串緩沖區(qū)首地址為入口參數(shù),利用DS:DX傳遞此參數(shù)。(2).編寫一個可屏蔽的外部中斷服務(wù)程序,中斷請

20、求來自8259A的IRQ0,在新的外部中斷服務(wù)程序(新08H中斷)中,使得每55ms的中斷在屏幕上顯示一串信息“A 8259A Interrupt!”,顯示10次后,恢復(fù)原中斷服務(wù)程序,返回DOS。二 設(shè)計(實驗)正文1. 內(nèi)部中斷2. 外部中斷其中增加了一小段進行延遲,及中斷10次才輸出一次inc counter1 cmp counter1,0ah jb stop mov counter1,0 inc counter三 課程設(shè)計(綜合實驗)總結(jié)或結(jié)論通過本次試驗,我了解了匯編程序的開發(fā)過程,能夠在MASM for window環(huán)境下的進行編輯,變異,連接程序,掌握了INT 21H軟件中的的調(diào)

21、用DOS內(nèi)部子程序的方法。但對于dos環(huán)境下的匯編程序的編輯編譯連接使用還不是很熟悉,只能是在masm for window繼承軟件開發(fā)環(huán)境熟悉的編譯連接運行。實驗四:發(fā)聲系統(tǒng)設(shè)計一 課程設(shè)計(綜合實驗)的目的與要求發(fā)聲系統(tǒng)設(shè)計,參考教材中的例9.1,利用揚聲器控制原理,編寫一個簡易樂器程序。要求當(dāng)按下18數(shù)字鍵時,分別發(fā)出連續(xù)的中音17和高音i(對應(yīng)頻率依次為524Hz、588Hz、660Hz、698Hz、784Hz、880Hz、988Hz和1048Hz);當(dāng)按下其他鍵時,暫停發(fā)聲。如果時間允許,可在此基礎(chǔ)上自行發(fā)揮,如增加按鍵功能、編輯歌曲等。二 設(shè)計(實驗)正文1. 揚聲器設(shè)置speak

22、erprocpush axmov al,0b6h;10 11 011 0out 43h,alpop axout 42h,almov al,ahout 42h,alretspeaker endpspeakon proc;揚聲器開push axin al,61hor al,03hout 61h,alpop axretspeakon endpspeakoff proc;揚聲器關(guān) push ax in al,61h and al,0fch out 61h,al pop ax retspeakoff endp2.輸入判斷,并調(diào)用first: mov ah,1h int 21h cmp al,1bh jz

23、 exit cmp al,31h jb close cmp al,38h ja close and al,0fh mov ah,00h add ax,ax mov si,ax mov bx,offset freq mov ax,bx+si mov cx,ax mov dx,0012h mov ax,34dch div cx call speaker call speakon jmp first close: call speakoff jmp first三 課程設(shè)計(綜合實驗)總結(jié)或結(jié)論音符和頻率之間有一定的對應(yīng)關(guān)系,如果計算機鍵盤上的一些鍵和音符、頻率也形成一種對應(yīng)關(guān)系,則可通過鍵盤控制揚聲

24、器發(fā)出各種音符聲音,這時計算機鍵盤就變成了鋼琴鍵盤,就可以用他彈奏出簡單的樂曲了。實驗五:鍵盤程序設(shè)計 一 課程設(shè)計(綜合實驗)的目的與要求鍵盤程序設(shè)計,編寫一個程序,每當(dāng)在鍵盤上按下一個按鍵時,就顯示其接通和斷開掃描碼。具體原理參見教材第十一章,并行接口。二 設(shè)計(實驗)正文1. 輸出接通掃描碼的十位個位計算binihex proc mov ch,4rotate: mov cl,4 rol bx,cl ;循環(huán)左移 mov al,bl and al,0fh add al,30h cmp al,3ah jl print add al,7print: mov dl,al mov ah,2 int

25、21h dec ch jnz rotate retbinihex endp1 計算斷開掃描碼,在接通掃描碼的基礎(chǔ)上加80h并調(diào)用以上程序2 鍵盤上F1F9在字符上的輸出,先輸出F,再對其接通掃描碼減去3bh,進行輸出mov ah,2 ;是就輸出F mov dl,46h int 21h sub ch,3bh add ch,30h mov dl,ch mov ah,2 int 21h mov dl,0Dh mov ah,2 int 21h mov dl,0Ah mov ah,2 int 21h jmp againnext: mov dl,cl mov ah,2 int 21h ;打印回車換行 mo

26、v dl,0Dh mov ah,2 int 21h mov dl,0Ah mov ah,2 int 21h三 課程設(shè)計(綜合實驗)總結(jié)或結(jié)論本實驗中的要求是將輸入的十六進制的數(shù)轉(zhuǎn)換為十進制的數(shù),并進行輸出,結(jié)果是將十六進制的數(shù)按ASCII碼轉(zhuǎn)換而得的。在此程序中較為復(fù)雜的是進行轉(zhuǎn)換,程序中,需要設(shè)定循環(huán)次數(shù),以及跳轉(zhuǎn)方向。同時,在輸出字符時也需要進行判斷,分類輸出。實驗六:電子鐘設(shè)計一 課程設(shè)計(綜合實驗)的目的與要求利用偉福實驗系統(tǒng)提供的8253計數(shù)器,8259中斷控制器、七段數(shù)碼管、8255并行接口芯片等,設(shè)計實現(xiàn)一個電子鐘的電路,并編制一個程序使得該電子鐘能正常工作。其中,8253計數(shù)器

27、用于產(chǎn)生計時脈沖(如1s、100ms等),中斷服務(wù)程序用于對時、分、秒的計數(shù)更新,并存入相應(yīng)的存儲單元,主程序設(shè)置相應(yīng)芯片的工作方式、完成時、分、秒信息的顯示等。二 設(shè)計(實驗)正文在程序中自己進行完成的方面有:1. 鬧鐘到點報時NAOZHONG PROC NEAR MOV AL,MINUTE ;將要進行調(diào)整的鬧鐘賦給鬧鐘的時間 MOV NMINUTE,AL MOV AL,HOUR MOV NHOUR,ALSHI2: MOV AL,NHOUR ;將時間數(shù)字轉(zhuǎn)換賦給LED顯示緩沖區(qū) MOV AH,0 MOV CL,10 DIV CL MOV CH,AH MOV AH,0 MOV BX,OFFSE

28、T LEDMAP ADD BX,AX MOV AL,BX MOV LEDBUF,AL MOV BX,OFFSET LEDMAP MOV AL,CH MOV AH,0 ADD BX,AX MOV AL,BX OR AL,80H MOV LEDBUF+1,AL MOV AL,NMINUTE MOV AH,0 MOV CL,10 DIV CL MOV CH,AH MOV AH,0 MOV BX,OFFSET LEDMAP ADD BX,AX MOV AL,BX MOV LEDBUF+2,AL MOV BX,OFFSET LEDMAP MOV AL,CH MOV AH,0 ADD BX,AX MOV

29、AL,BX OR AL,80H MOV LEDBUF+3,AL MOV LEDBUF+4,3FH MOV LEDBUF+5,3FH CALL DISPLAYLED ;調(diào)用完LED顯示 CALL TESTKEY ;測試是否有輸入,有則判斷,無則繼續(xù)顯示 JNE SHI1 JMP SHI2SHI1: CALL GETKEY CMP AL,0FH JZ NXIAOSHI CMP AL,0EH JZ NFENZHONG CMP AL,0BH JZ JEND1NFENZHONG: ;分鐘判斷。按E進行自增 INC NMinute cmp NMinute,60 jz Nt2 JMP Nt3Nt2: mov NMinute,00Nt3: JMP SHI2JEND1: JMP END1NXIAOSHI: ;小時。按F進

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論