課程設(shè)計報告--匯編語言_第1頁
課程設(shè)計報告--匯編語言_第2頁
課程設(shè)計報告--匯編語言_第3頁
課程設(shè)計報告--匯編語言_第4頁
課程設(shè)計報告--匯編語言_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.課程設(shè)計報告(本科)課程:匯編語言學(xué)號:1210461030 1210461016姓名:豆建華 錢愛萍班級:12級計算機科學(xué)與技術(shù)系(2)班教師:吳昊時間:2013.6.12013.6.27計算機科學(xué)與技術(shù)系;設(shè)計名稱:系統(tǒng)時間程序設(shè)計設(shè)計內(nèi)容、目的與要求:設(shè)計內(nèi)容:編寫系統(tǒng)時間程序設(shè)計實驗?zāi)康模菏窃陲@示系統(tǒng)下顯示的當前日期和時間。實驗要求:按照界面提示信息顯示。例如:可設(shè)計界面提示信從鍵盤輸入“D”可顯示系統(tǒng)的日期。利用DOS系統(tǒng)調(diào)用的2AH和2CH 功能調(diào)用。讀取系統(tǒng)的日期和時間。將日期和時間值轉(zhuǎn)換為相應(yīng)的ASCII碼字符,顯示在屏幕上。雙擊可執(zhí)行程序.exe文件,在出現(xiàn)的提示信息中輸入

2、大寫字“D”,可顯示系統(tǒng)當前日期;輸入大寫字母“T”,可顯示系統(tǒng)當前時間;輸入大寫字母“Q”,可結(jié)束程序。計劃與進度安排:6月1日-6月15日: 進行構(gòu)思與查閱資料。與本實驗的合作者討論此次試驗學(xué)習(xí)到了哪些知識點,同時對這些知識點進行全面系統(tǒng)的復(fù)習(xí)。6月16日-6月20日:開始編寫程序分析程序,進行程序設(shè)計并進行調(diào)試與運行對所編寫的程序進行修改使之達到最好. 完成對基本功能的修改并運行無誤;增加對開始的源程序的功能6月21日-6月27日:完成匯編語言課程設(shè)計實驗報告。設(shè)計過程、步驟(可加頁):程序設(shè)計分析:l 在DOS環(huán)境下完成,先利用BIOS功能調(diào)用中顯示器驅(qū)動程序的00H類型調(diào)用,設(shè)置顯示

3、器的顯示模式為80*25彩色。l 在屏幕中央顯示提示信息(提示用戶輸入“D”或“T”或“Q”)。l 然后對用戶輸入的字母進行判斷,利用分支程序分別調(diào)用不同的子程序。兩個子程序的功能分別是顯示當前日期(用2AH的DOS功能調(diào)用來取日期),顯示當前時間(用2CH的DOS功能調(diào)用來取時間)。 必須用到的DOS功能調(diào)用:取當前系統(tǒng)日期:功能號為2AH,返回值送入CX,DX寄存器中。取當前系統(tǒng)時間:功能號為2CH,返回值送入CX,DX寄存器中。主程序流程圖開始顯示輸入選擇數(shù)據(jù)D(date)/T(time)/Q(quit)轉(zhuǎn)換為相應(yīng)的ASCII字符顯示日期/時間結(jié)束圖1實驗主流程圖結(jié)果與分析(可以加頁):

4、 1.程序運行界面(1) 提示界面 進入提示界面“WELCOME TO TIMEMASTER”根據(jù)提示請輸入“D” 或“T”或“Q”。 圖2 提示界面圖(2)顯示日期輸入“D”顯示當前日期圖3顯示日期圖(3)顯示時間輸入“T”顯示當前時間圖4顯示時間圖(4)退出程序輸入“Q”退出程序圖5退出程序圖說明:以上截圖為此次實驗運行出來時的主要截圖,其中圖1為本實驗的主流程圖,分為三個部分,分別是日期的顯示,時間的顯示以及程序的退出。圖2是在屏幕中央顯示提示信息(提示用戶輸入“D”或“T”或“Q”)。圖3是取當前系統(tǒng)日期:功能號為2AH,返回值送入CX,DX寄存器中。圖4是取當前系統(tǒng)時間:功能號為2C

5、H,返回值送入CX,DX寄存器中。設(shè)計體會與建議:通過對這一系統(tǒng)時間程序的制作,讓我們掌握在 語言中使用計算機簡單的圖形顯示程序顯示系統(tǒng)日期和時間的方法,以便在以后的其他各種程序中能夠更加熟練的運用這種方法來顯示計算機系統(tǒng)的日期和時間。同時也讓我對匯編語言的基本知識的使用更加熟練,同時也增加了我對匯編語言的一些認識,在作業(yè)完成過程中通過和同學(xué)的交流,也增加了合作的技巧。通過查閱資料也學(xué)到了一些課本上沒有的東西,拓寬了自己的知識面,增加了學(xué)好匯編語言的信心。     這不是第一次用匯編語言來設(shè)計一個小程序,平時做了很多實驗,寫了很多小程序。但這次是一個綜合的程序,平

6、時的很多程序都用到了,例如在程序中用到了不少的子程序,宏,這些子程序的設(shè)計是固定的,因此可以直接從指導(dǎo)資料中調(diào)用,大多只需要修改幾個參數(shù)就可以,這大大方便了我們的設(shè)計,為我們節(jié)省了很多的時間。在這次課程設(shè)計中,我真正體會到了合作的重要性,遇到很多問題時,當我看書查資料不能解決時,這是去找同學(xué)討論一下,收獲很大,可以使很多問題迎刃而解,直到問題最終解決。從資料中,我們可以看出這個時鐘程序的基本流程,修改一些程序就可以實現(xiàn)這個程序的基本功能,添加一些程序就可以實現(xiàn)這個時鐘的附加功能。不可否認,本程序存在不少缺點和不足,但通過這次作業(yè)的卻找出了自己在學(xué)習(xí)上的不足,對以后的工作也有指導(dǎo)作用。我相信在以

7、后的學(xué)習(xí)中會克服這些不足,達到熟練掌握匯編語言的目的!豆建華根據(jù)設(shè)計要求,這個程序基本實現(xiàn)所要求的功能。但由于短暫的設(shè)計時間和過于零散的匯編知識暴露出許多不足之處,如我們顯示的時間是靜態(tài)的,不能動態(tài)顯示連續(xù)的時間,界面太過單調(diào)。但是程序也有他相對的特點如冗余低,能判斷是否輸入錯誤,和對應(yīng)的時間和日期的大小寫輸入。做這個程序的過程中,我加深了對某些指令的理解,如push,pop,jmp指令。本次實驗,我覺得最大的收獲便是慢慢學(xué)會了集體思考問題及解決問題,并且最終合作力量通過程序代碼來實現(xiàn),我感覺這是對自我的一種突破。乍一看到這個題目,感覺挺簡單啊,不就是用一個字符和規(guī)定的三個字符相比較,分別調(diào)用

8、子程序么?可是真正在編寫程序的過程中,才發(fā)現(xiàn)想的容易,寫起來卻是另一會事,正如杜甫所說的“書到用時方恨少,事非經(jīng)過不知難?!逼鋵崒τ谶@種情況,我們極容易犯眼高手低的毛病,這就導(dǎo)致我們失去了多次自己動手操作實踐的機會,一味的只是看老師演示演示再演示。通過這次試驗,我知道了在以后的學(xué)習(xí)過程中,一定要自己去實踐,在實踐中能得到更加深刻的認識和體會,對知識能夠更好更深刻的掌握。錢愛萍 附錄源代碼:STACK SEGMENT STACK DW 200 DUP (?)STACK ENDSDATA SEGMENT SPACE DB 1000 DUP (' ') STR1 DB 40 DUP

9、(' '),9 DUP(' '),'WELCOME TO TIMEMASTER!',52 DUP(' ') DUICHU DB 240 DUP (' '),9 DUP(' '),'THANK YOU VERY MUCH!',412 DUP(' ') PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ') DB 6 DUP (' '),0BAH,26 DUP (

10、20H),0BAH,6 DUP (' ') DB 6 DUP (' '),0C8H,26 DUP (0CDH),0BCH,6 DUP (' ') DBUFFER DB 8 DUP (':'),12 DUP (' ') DBUFFER1 DB 20 DUP (' ') STR DB 0DH,0AH, 'PLEASE INPUT DATE(D) OR TIME(T) OR QUIT(Q): $'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES

11、:DATA,SS:STACKSTART: MOV AX,0001H INT 10H ;設(shè)置顯示方式為40*25彩色文本方式 MOV AX,DATA MOV DS,AX MOV ES,AX MOV BP,OFFSET SPACE MOV DX,0B00H ;0B00 MOV CX,1000 MOV BX,0020H MOV AX,1300H INT 10H MOV BP,OFFSET STR1;顯示'WELCOME TO TIMEMASTER!' MOV DX,0600H MOV CX,120 MOV BX,000EH MOV AX,1301H INT 10H MOV BP,OF

12、FSET PATTERN ;顯示矩形條 MOV DX,0B00H MOV CX,120 MOV BX,004EH MOV AX,1301H INT 10H LEA DX,STR ;顯示提示信息 MOV AH,9 INT 21H MOV AH,1 ;從鍵盤輸入單個字符 INT 21H CMP AL,44H ;AL='D'? JNE A CALL DATE ;顯示系統(tǒng)日期A: CMP AL,54H ;AL='T'? JNE B CALL TIME ;顯示系統(tǒng)時間 B: CMP AL,51H ;AL='Q'? JNE START MOV BP,OFFS

13、ET DUICHU;顯示'THANK YOU VERY MUCH!' MOV DX,0600H MOV CX,520 MOV BX,004EH MOV AX,1301H INT 10H MOV AX,4C00H ;返回dos狀態(tài) INT 21HDATE PROC NEAR ;顯示日期子程序DISPLAY:MOV AH,2AH ;取日期 INT 21H MOV SI,0 MOV AX,CX MOV BX,100 DIV BL MOV BL,AH ;AH=12AL=20 CALL BCDASC1 ;日期數(shù)值轉(zhuǎn)換成相應(yīng)的ASCII碼字符 MOV AL,BL CALL BCDASC1

14、INC SI MOV AL,DH CALL BCDASC1 INC SI MOV AL,DL CALL BCDASC1 MOV BP,OFFSET DBUFFER1 MOV DX,0C0DH MOV CX,20 MOV BX,004EH MOV AX,1301H INT 10H MOV AH,02H ;設(shè)置光標位置 MOV DX,0300H MOV BH,0 INT 10H MOV BX,0018HREPEA: MOV CX,0FFFFH ;延時REPEAT:LOOP REPEAT DEC BX JNZ REPEA MOV AH,01H ;讀鍵盤緩沖區(qū)字符到AL寄存器 INT 16H JE D

15、ISPLAY JMP START MOV AX,4C00H INT 21H RETDATE ENDPTIME PROC NEAR ;顯示時間子程序DISPLAY1:MOV SI,0 MOV BX,100 DIV BL MOV AH,2CH ;取時間 INT 21H MOV AL,CH CALL BCDASC ;將時間數(shù)值轉(zhuǎn)換成ASCII碼字符 INC SI MOV AL,CL CALL BCDASC INC SI MOV AL,DH CALL BCDASC MOV BP,OFFSET DBUFFER MOV DX,0C0DH MOV CX,20 MOV BX,004EH MOV AX,1301

16、H INT 10H MOV AH,02H MOV DX,0300H MOV BH,0 INT 10H MOV BX,0018HRE: MOV CX,0FFFFHREA: LOOP REA DEC BX JNZ RE MOV AH,01H INT 16H JE DISPLAY1 JMP START MOV AX,4C00H INT 21H RETTIME ENDPBCDASC PROC NEAR ;時間數(shù)值轉(zhuǎn)換成ASCII碼字符子程序 PUSH BX CBW MOV BL,10 DIV BL ADD AL,'0' MOV DBUFFERSI,AL INC SI ADD AH,

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論