《匯編語言》課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第1頁
《匯編語言》課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第2頁
《匯編語言》課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第3頁
《匯編語言》課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第4頁
《匯編語言》課程設(shè)計(jì)報(bào)告顯示系統(tǒng)時(shí)間_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.匯編語言課程設(shè)計(jì)報(bào)告 題 目: 院 (系): 班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 1設(shè)計(jì)主要任務(wù)這個(gè)程序主要是用來顯示系統(tǒng)時(shí)間的程序。在這個(gè)程序中,主程序首先設(shè)置顯示方式,取系統(tǒng)時(shí)間后將時(shí)間保存,繼續(xù)設(shè)置顯示方式,利用BIOS的INT 1AH的2號(hào)系統(tǒng)功能調(diào)用,將計(jì)算機(jī)系統(tǒng)的時(shí)間參數(shù)(BCD碼)送入寄存器,將用BCD碼表示的時(shí)、分、秒轉(zhuǎn)換成ASCII碼并進(jìn)行顯示。讀字符串到al中進(jìn)行判斷是否為結(jié)束,然后進(jìn)行顯示時(shí)間。后又重新取系統(tǒng)時(shí)間。 然后進(jìn)行一系列的判斷是否有進(jìn)位。有則進(jìn)行進(jìn)位操作,否則重新取系統(tǒng)時(shí)間。1.1設(shè)計(jì)任務(wù)與目標(biāo)任務(wù):對(duì)學(xué)生掌握知識(shí)的深度、運(yùn)用理論去處理問題的能力、實(shí)驗(yàn)?zāi)?/p>

2、力、課程設(shè)計(jì)能力、書面及口頭表達(dá)能力進(jìn)行考核。匯編語言程序設(shè)計(jì)課程設(shè)計(jì)是在教學(xué)實(shí)踐基礎(chǔ)上進(jìn)行的一次大型實(shí)驗(yàn),也是對(duì)該課程所學(xué)理論知識(shí)的深化和提高。因此,要求學(xué)生能綜合應(yīng)用所學(xué)知識(shí),設(shè)計(jì)與制造出具有較復(fù)雜功能的應(yīng)用系統(tǒng),并且在實(shí)驗(yàn)的基本技能方面上進(jìn)行一次全面的訓(xùn)練。培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成匯編程序課題的能力。使學(xué)生能夠較全面地鞏固和應(yīng)用課堂中所學(xué)的基本理論和程序設(shè)計(jì)方法,能夠較熟練地完成匯編語言程序的設(shè)計(jì)和調(diào)試。提高學(xué)生對(duì)工作認(rèn)真負(fù)責(zé)、一絲不茍,對(duì)同學(xué)團(tuán)結(jié)友愛,協(xié)作攻關(guān)的基本素質(zhì)。培養(yǎng)學(xué)生從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意

3、識(shí)和創(chuàng)新能力。培養(yǎng)學(xué)生勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來檢驗(yàn)理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。目標(biāo):用“時(shí):分:秒”(均為兩位)的形式連續(xù)顯示系統(tǒng)時(shí)間。利用BIOS的INT 1AH的2號(hào)系統(tǒng)功能調(diào)用,將計(jì)算機(jī)系統(tǒng)的時(shí)間參數(shù)(BCD碼)送入寄存器,將用BCD碼表示的時(shí)、分、秒轉(zhuǎn)換成ASCII碼并進(jìn)行顯示。2 設(shè)計(jì)方案(1)在DOS環(huán)境下完成,先利用BIOS功能調(diào)用中顯示器驅(qū)動(dòng)程序的00H類型調(diào)用,設(shè)置顯示器的顯示模式為80*25彩色。(2)在屏幕中央顯示提示信息(提示用戶輸入“D”或“T”或“Q”)。(3)然后對(duì)用戶輸入的字母進(jìn)行判斷,利用分支程序分別調(diào)用不同的子程序

4、。兩個(gè)子程序的功能分別是顯示當(dāng)前日期(用2AH的DOS功能調(diào)用來取日期),顯示當(dāng)前時(shí)間(用2CH的DOS功能調(diào)用來取時(shí)間)。 必須用到的DOS功能調(diào)用:取當(dāng)前系統(tǒng)日期:功能號(hào)為2AH,返回值送入CX,DX寄存器中。取當(dāng)前系統(tǒng)時(shí)間:功能號(hào)為2CH,返回值送入CX,DX寄存器中。例如:2009年5月31日運(yùn)行的程序中,使用2AH的DOS功能調(diào)用后,得到CX=07D9H, DX=051FH其中,CX中的數(shù)據(jù)為2009D,即年份。DX中的數(shù)據(jù)中可分析得:DH=05H=05D,即月份。 DL=1FH=31D,即日期號(hào)。最后應(yīng)將數(shù)據(jù)轉(zhuǎn)換為其字符對(duì)應(yīng)的ASCII碼,即32H,30H,30H,39H, 2DH

5、,30H,35H,2DH,33H,31H 再顯示在屏幕上。即顯示出: 2009-5-313 主程序設(shè)計(jì)其中主要對(duì)主程序和宏清屏命令進(jìn)行了設(shè)計(jì)和編碼,下面將分別對(duì)它們進(jìn)行簡(jiǎn)要說明。主程序: CODE SEGMENT ;代碼段ASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROC FAR BEGIN: MOV AH,0 ;設(shè)置40*25圖形顯示MOV AL,3 INT 10H CLEAR_SCREEN 00H,00H,19H,50H MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX ;*顯示宏定義*SHOW MACRO

6、b LEA DX,b MOV AH,9 INT 21H ENDM SHOW WELCOME ;顯示數(shù)據(jù)段的內(nèi)容SHOW INF01 SHOW INF02 SHOW INF03 SHOW INF04 SHOW INF05SHOW INF06 INPUT: MOV AH,01 ;鍵盤輸入并回寫INT 21H CMP AL,44H ;與D比較JNE L1 ;不相等轉(zhuǎn)L1CALL DATEDISPLAY ;相等調(diào)用DATADISPLAYJMP EXIT1 L1: CMP AL,54H ;與T比較JNE L2 ;不相等轉(zhuǎn)L2CALL TIMEDISPLAY ;相等調(diào)用TIMEDISPLAYJMP EXI

7、T1 L2: CMP AL,51H ;與Q比較JE EXIT ;相等轉(zhuǎn)EXITSHOW INPUTER ;顯示輸入錯(cuò)誤SHOW INF05 ;顯示輸入提示JMP INPUT EXIT1: SHOW INF06 ;顯示輸入提示JMP INPUT ;EXIT: MOV AH,4CH ;結(jié)束INT 21H MAIN ENDP 主程序主要實(shí)現(xiàn)與用戶的交互,首先程序會(huì)提示用戶想要進(jìn)行什么操作。是顯示DATE,TIME還是退出。這里對(duì)應(yīng)的給用戶提供的選項(xiàng)是“D”、“T”和“Q”。當(dāng)用戶輸入他們的選項(xiàng)之后,主程序要判斷用戶的輸入調(diào)用相應(yīng)的功能模塊來滿足用戶的要求。我們假設(shè)用戶輸入字符為X,那么首先我們將X與

8、“D”比較。如果相同則程序調(diào)用DATE_DISPLAY模塊為用戶顯示日期。若不為“D”則要繼續(xù)與“T”想比較。相等則調(diào)用TIME_DISPLAY模塊,不等則繼續(xù)與“Q”相比較。相等則正常退出,不等則說明用戶輸入非法字符主程序返回到選擇界面用戶可以繼續(xù)選擇。特別說明:匯編語言的選擇結(jié)構(gòu)不同于C語言的選擇結(jié)構(gòu),程序設(shè)計(jì)過程中要特別小心。避免將造成潛在的BUG.3.1主程序流程圖NNYNY顯示提示信息輸入一個(gè)字符是否為d調(diào)用DATA調(diào)用TIME是否為t 是否為q結(jié)束YN開始4 子程序設(shè)計(jì)4.1 DATE子程序流程圖 開 始獲取原中斷類型1CH 保存原中斷類型 設(shè)置新的中斷類型 執(zhí)行中斷處理程序 保護(hù)

9、現(xiàn)場(chǎng) 中斷返回 讀取系統(tǒng)時(shí)間 保存原中斷類型分別將時(shí)間的BCD碼轉(zhuǎn)換為字符在指定位置寫顯存以顯示日期 恢復(fù)現(xiàn)場(chǎng)4.2 TIME子程序流程圖 開 始獲取原中斷類型1CH 保存原中斷類型 設(shè)置新的中斷類型 執(zhí)行中斷處理程序 保護(hù)現(xiàn)場(chǎng) 中斷返回 讀取系統(tǒng)時(shí)間 保存原中斷類型分別將時(shí)間的BCD碼轉(zhuǎn)換為字符在指定位置寫顯存以顯示時(shí)間 恢復(fù)現(xiàn)場(chǎng)5 調(diào)試(1)、運(yùn)行環(huán)境 (軟、硬件環(huán)境):硬件:8086以上CPU,內(nèi)存256M以上。軟件:WINDOWS操作系統(tǒng),MASM,LINK匯編編譯鏈接軟件。(2)、程序界面:1.提示界面 如圖6-1圖6-12.顯示日期如圖6-2圖6-23. 顯示時(shí)間如圖6-3圖 6-

10、34.錯(cuò)誤輸入如圖6-4圖 6-41)編譯源文件,命名為jie3.ASM ;2)采用命令格式。MASM jie3.ASM將生成一個(gè)OBJ文件,檢查源程序中的錯(cuò)誤,并改正。3)鍵入連接命令:LINK jie3.OBJ,再次鍵入jie3回車,即可顯示結(jié)果。4)時(shí)間在運(yùn)行中出現(xiàn)了不準(zhǔn)確性,對(duì)程序的循環(huán)次調(diào)整后,時(shí)間能正常運(yùn)行。6 設(shè)計(jì)總結(jié)通過對(duì)這一鬧鐘程序的制作,使我對(duì)匯編語言的基本知識(shí)的使用更加熟練,同時(shí)也增加了我對(duì)匯編語言的一些認(rèn)識(shí),在作業(yè)完成過程中通過和同學(xué)的交流,也增加了合作的技巧。通過查閱以下資料也學(xué)到了一些課本上沒有的東西,拓寬了自己的知識(shí)面,增加了學(xué)好匯編語言的信心。  &#

11、160;  這不是第一次用匯編語言來設(shè)計(jì)一個(gè)小程序,平時(shí)做了很多實(shí)驗(yàn),寫了很多小程序。但這次是一個(gè)綜合的程序,平時(shí)的很多程序都用到了,例如在程序中用到了不少的子程序,宏,這些子程序的設(shè)計(jì)是固定的,因此可以直接從指導(dǎo)資料中調(diào)用,大多只需要修改幾個(gè)參數(shù)就可以,這大大方便了我們的設(shè)計(jì),為我們節(jié)省了很多的時(shí)間。在這次課程設(shè)計(jì)中,我真正體會(huì)到了合作的重要性,遇到很多問題時(shí),當(dāng)我看書查資料不能解決時(shí),這是去找同學(xué)討論一下,收獲很大,可以使很多問題迎刃而解,直到問題最終解決。從資料中,我們可以看出這個(gè)時(shí)鐘程序的基本流程,修改一些程序就可以實(shí)現(xiàn)這個(gè)時(shí)鐘的基本功能,添加一些程序就可以實(shí)現(xiàn)這個(gè)時(shí)鐘的附加

12、功能。不可否認(rèn),本程序存在不少缺點(diǎn)和不足,但通過這次作業(yè)的卻找出了自己在學(xué)習(xí)上的不足,對(duì)以后的工作也有指導(dǎo)作用。我相信在以后的學(xué)習(xí)中會(huì)克服這些不足,達(dá)到熟練掌握匯編語言的目的!7 程序清單程序代碼:;*清屏宏定義*CLEAR_SCREEN MACRO OP1,OP2,OP3,OP4 ;1 MOV AH,06H ;2MOV AL,00H ;3MOV BH,79H ;4MOV CH,OP1 ;5MOV CL,OP2 ;6MOV DH,OP3 ;7MOV DL,OP4 ;8INT 10H ;9MOV AH,02H ;10MOV BH,00H ;11MOV DH,00H ;12MOV DL,00H ;

13、13INT 10H ;14ENDM ;15STACK SEGMENT STACK ;16定義堆棧段DB 200 DUP(0) ;17STACK ENDS ;18 DATA SEGMENT ;19定義數(shù)據(jù)段WELCOME DB 'WELCOME YOU TO COME HERE!$' ;20提示界面INF01 DB 0DH,0AH,'THIS IS A DISPLAY PROGAME!$' ;21INF02 DB 0DH,0AH,'PLEASE INPUT "D" "T" OR "Q" TO SH

14、OW DATA TIME OR EXIT!$'INF03 DB 0DH,0AH,'D:DISPLAY SYSTEM DATE;$' ;22INF04 DB 0DH,0AH,'T:DISPLAY SYSTEM TIME;$' ;23INF05 DB 0DH,0AH,'Q:QUIT.$' ;24INF06 DB 0DH,0AH,'PLEASE INPUT THE CHAR:$' ;25INPUTER DB 0DH,0AH,'INPUT ERROR!$' ;26DATEDIS DB ' 00 - 00 -

15、 0000',0AH,'$' ;27顯示DATETIMEDIS DB ' 00 ',3AH,' 00 ',3AH,' 00 ',0AH,'$' ;28顯示TIMEDATA ENDS ;29CODE SEGMENT ;30代碼段ASSUME CS:CODE,DS:DATA,SS:STACK ;31;*主程序*MAIN PROC FAR ;32BEGIN: ;33MOV AH,0 ;34設(shè)置40*25圖形顯示MOV AL,3 ;35INT 10H ;36CLEAR_SCREEN 00H,00H,19H,50H

16、;37MOV AX,DATA ;38MOV DS,AX ;39MOV AX,STACK ;40MOV SS,AX ;41;*顯示宏定義*SHOW MACRO b ;42LEA DX,b ;43MOV AH,9 ;44INT 21H ;45ENDM ;46SHOW WELCOME ;47顯示數(shù)據(jù)段的內(nèi)容SHOW INF01 ;48SHOW INF02 ;49SHOW INF03 ;50SHOW INF04 ;51SHOW INF05 ;52SHOW INF06 ;53INPUT: MOV AH,01 ;53鍵盤輸入并回寫INT 21H ;54CMP AL,44H ;55與D比較JNE L1 ;5

17、6不相等轉(zhuǎn)L1CALL DATEDISPLAY ;57相等調(diào)用DATADISPLAYJMP EXIT1 ;58L1: CMP AL,54H ;59與T比較JNE L2 ;60不相等轉(zhuǎn)L2CALL TIMEDISPLAY ;61相等調(diào)用TIMEDISPLAYJMP EXIT1 ;62L2: CMP AL,51H ;63與Q比較JE EXIT ;64相等轉(zhuǎn)EXITSHOW INPUTER ;65顯示輸入錯(cuò)誤SHOW INF05 ;66顯示輸入提示JMP INPUT ;67EXIT1: SHOW INF05 ;68顯示輸入提示JMP INPUT ;69EXIT: MOV AH,4CH ;70結(jié)束IN

18、T 21H ;71MAIN ENDP ;72;*日期顯示子程序*DATEDISPLAY PROC NEAR ;73MOV AH,2AH ;74取當(dāng)前系統(tǒng)日期INT 21H ;75MOV AX, CX ;76送年份入AXMOV BX, 10 ;77 (BX)=10LEA SI, DATEDIS + 14 ;78使SI指向年的最后一位MOV CX, 4 ;79(CX)=4PUSH DX ;80保存月日TAB: XOR DX, DX ;81DX清零DIV BX ;82(DX,AX)/BX,商送AX,余數(shù)送DXADD DL, 30H ;83余數(shù)與30H相加變?yōu)樽址腁SCII碼MOV SI, DL ;84余數(shù)送入SI所指向的字節(jié)區(qū)DEC SI ;85SI減一LOOP TAB ;86循環(huán)POP DX ;87DX還原MOV AL, DL ;88日送ALXOR AH, AH ;89AH清零DIV BL ;90AX/BL,商送AH,余數(shù)送ALADD AX, 3030H ;91轉(zhuǎn)變

溫馨提示

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