微機原理課程設(shè)計-顯示時間日期_第1頁
微機原理課程設(shè)計-顯示時間日期_第2頁
微機原理課程設(shè)計-顯示時間日期_第3頁
微機原理課程設(shè)計-顯示時間日期_第4頁
微機原理課程設(shè)計-顯示時間日期_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、 課程設(shè)計目的用匯編語言獨立完成一個程序題,以達到熟練運用匯編語言編程實現(xiàn)有比較完整功能的程序的目的。(1)學習分支、中斷、和邏輯表達。(2)熟悉匯編語言程序的編譯、鏈接過程。二課程設(shè)計任務(wù)設(shè)計一個顯示日期或時間的匯編程序間且滿足以下要求:基本功能:運行可執(zhí)行程序systime.exe,在出現(xiàn)的提示信息中輸入大寫字母“D”,可顯示系統(tǒng)當前日期;輸入大寫字母“T”,可顯示系統(tǒng)當前時間;輸入大寫字母“Q”,可結(jié)束程序。三、總體設(shè)計方案通過調(diào)用bios 16H 中斷的1號功能,讀取鍵盤的狀態(tài)掃描鍵盤輸入,根據(jù)鍵盤輸入的相關(guān)內(nèi)容,如:若輸入D,則設(shè)計程序代碼依次讀取系統(tǒng)日期年、月、日,并轉(zhuǎn)換成BC

2、D碼調(diào)用號中斷予以顯示;若在鍵盤輸入T,則設(shè)計程序代碼依次讀取系統(tǒng)時間時、分、秒,并轉(zhuǎn)換成碼并調(diào)用號中斷予以顯示;若輸入大寫字母Q,則退出當前狀態(tài);若不是相關(guān)字符,則不于任何響應(yīng),并不顯示任何信息。四、部分程序設(shè)計及功能解說1、 掃描鍵盤輸入用SCANK:;掃描鍵盤輸入,根據(jù)鍵盤輸入調(diào)用bios 16H 中斷的1號功能,讀取鍵盤的狀態(tài),根據(jù)輸入的字母,與字母“進行比較,若值為則去執(zhí)行CHKT,并響應(yīng)按鍵D掃描鍵盤輸入部分程序如下: XOR AX,AX INT 16H;調(diào)用bios 16H 中斷的1號功能,讀取鍵盤的狀態(tài).CMP AL,'D'JNE CHKT;如果輸入的是字母“D

3、”則跳轉(zhuǎn)執(zhí)行CHKT子程序 CALL DSPD;響應(yīng)按鍵'D' JMP SCANK2、 BCD碼轉(zhuǎn)換將讀取的二進制代碼循環(huán)右移4位,相當于將二進制轉(zhuǎn)換成16進制;將寄存器內(nèi)容與進行或運算,把單元傳遞于寄存器;程序代碼如下:ROR AX,CL SHR AH,CL OR AX,3030H MOV CH,AH3、 顯示部分調(diào)用10號中斷的0E功能顯示AL寄存器的內(nèi)容,即BCD碼將顯示在屏幕上。注意:BL=前景色;AL=字符。BCD碼顯示代碼如下所示:MOV AH,0EHINT 10H;調(diào)用10號中斷的0E功能顯示 MOV AL,CH INT 10H五、程序設(shè)計流程圖開 始掃描鍵盤輸入

4、輸 入 字 母是、?讀取系統(tǒng)時間讀取系統(tǒng)時間退出當前文件結(jié)束輸入“”輸入“T”輸入Q轉(zhuǎn)換為BCD碼顯示轉(zhuǎn)換為BCD碼顯示六.程序段功能匯總1、MAIN程序用SCANK:;掃描鍵盤輸入,根據(jù)鍵盤輸入調(diào)用bios 16H 中斷的1號功能,讀取鍵盤的狀態(tài),根據(jù)輸入的字母,與字母“進行比較疑惑,若異或值為則去執(zhí)行CHKT,并響應(yīng)按鍵D。其他如輸入“T”和“Q”時同理。2、DSPBCD PROC子程序即日期時間顯示程序,以日期顯示程序為例,通過讀取系統(tǒng)的日期項如“年”, 由于讀取的日期項是二進制代碼,所以調(diào)用DSPBCD,把讀取的系統(tǒng)日期項存為BCD碼,然后將其顯示出來,然后再循環(huán)以同樣方法讀取月,日。

5、3、DSPD PROC子程序本子程序是當鍵盤輸入字母“D”時所調(diào)用執(zhí)行的子程序;首先定義堆棧寄存器,按循環(huán)要求讀取系統(tǒng)日期項,由于讀取的日期項是二進制代碼,因此需調(diào)用DSPBCD PROC子程序轉(zhuǎn)換為BCD碼并予以顯示;執(zhí)行完DSPBCD PROC子程序后調(diào)用10號中斷顯示一個分隔符,完成一個日期項的顯示,然后再循環(huán)去讀取其他日期項;最后返回主程序執(zhí)行主程序。4、DSPT PROC子程序本子程序是當鍵盤輸入字母“T”時所調(diào)用執(zhí)行的子程序;首先定義堆棧寄存器,按循環(huán)要求讀取系統(tǒng)時間項,由于讀取的日期項是二進制代碼,因此需調(diào)用DSPBCD PROC子程序轉(zhuǎn)換為BCD碼并予以顯示;執(zhí)行完DSPBCD

6、 PROC子程序后調(diào)用10號中斷顯示一個分隔符,完成一個日期項的顯示,然后再循環(huán)去讀取其他日期項;最后返回主程序執(zhí)行主程序。其執(zhí)行過程與執(zhí)行DSPD PROC子程序相似。七.程序清單STACK SEGMENT STACK ;定義堆棧段STACKH DB 20H DUP(?)STSIZE EQU $-STACKHSTACK ENDSCODE SEGMENT ASSUME CS:CODE,SS:STACK;,DS:DATASTART: ;程序執(zhí)行的起始地址 MOV AX,STACK;堆棧段經(jīng)AX寄存器轉(zhuǎn)移到SS寄存器 MOV SS,AX MOV SP,STSIZESCANK:;掃描鍵盤輸入 XOR

7、 AX,AX INT 16H;調(diào)用bios 16H 中斷的1號功能,讀取鍵盤的狀態(tài). CMP AL,'D';AL=D ? JNE CHKT;如果不相等跳轉(zhuǎn)到子程序 CALL DSPD;響應(yīng)按鍵'D' JMP SCANKCHKT: CMP AL,'T';與字母“T”進行比較 JNE CHKQ;如果不相等跳轉(zhuǎn)到子程序執(zhí)行 CALL DSPT;響應(yīng)按鍵'T' JMP SCANK;跳轉(zhuǎn)到CHKQ: ;可以添加代碼以響應(yīng)其他按鍵 ;否則,它們將被忽略 CMP AL,'Q' JE EXIT;響應(yīng)按鍵'Q' JM

8、P SCANK;跳轉(zhuǎn)執(zhí)行到子程序EXIT: MOV AX,4C00H;退出當前系統(tǒng) INT 21H;功能: 顯示一個壓縮BCD碼;入口: BH=頁號; BL=前景色; AL=壓縮BCD碼DSPBCD PROC PUSH AX PUSH CX MOV CL,4;串長度為4 MOV AH,0;把讀取的二進位數(shù)轉(zhuǎn)為BCD碼 ROR AX,CL SHR AH,CL OR AX,3030H MOV CH,AH;顯示BCD碼 MOV AH,0EH INT 10H;調(diào)用10號中斷的0E功能顯示 MOV AL,CH INT 10H POP CX;退出當前堆棧段 POP AX RETDSPBCD ENDP;功能

9、: 顯示系統(tǒng)日期;入口: BH=頁號,BL=前景色; DSPD直接傳給DSPBCDDSPD PROC PUSH AX;定義堆棧段地址 PUSH CX MOV AL,9 MOV CX,3;定義循環(huán)次數(shù)3次GETD: ;子程序定義 PUSH AX;讀取系統(tǒng)日期項 OUT 70H,AL IN AL,71H CALL DSPBCD ;顯示一個日期項,如:年 MOV AX,0E2EH ;'.'的ASCII碼為2E INT 10H ;顯示一個分隔符'.' POP AX DEC AL LOOP GETD;繼續(xù)循環(huán)GETD POP CX POP AX RETDSPD ENDP;

10、功能: 顯示系統(tǒng)時間;入口: BH=頁號,BL=前景色; DSPT直接傳給DSPBCDDSPT PROC PUSH AX PUSH CX MOV AL,04H;定義串長度 MOV CX,3;定義循環(huán)次數(shù)3次,分別讀取時、分、秒GETT: ;子程序GETT PUSH AX;讀取一個系統(tǒng)時間項 OUT 70H,AL IN AL,71H CALL DSPBCD ;顯示一個日期項,如:日 MOV AX,0E3AH ;':'的ASCII碼為3A INT 10H ;顯示一個分隔符':' POP AX SUB AL,2 LOOP GETT;條件下繼續(xù)循環(huán)GETT POP CX

11、;退出堆棧段 POP AX RET;返回主程序執(zhí)行DSPT ENDPCODE ENDS END START;程序結(jié)束八.試驗結(jié)果及分析、實驗結(jié)果雙擊systime.exe,程序初始運行界面:如果按錯了鍵,會出現(xiàn)如下界面,沒任何反應(yīng),也不顯示任何信息:如果輸入正確如“D”將出現(xiàn)如下界面(每輸入一次就顯示一次系統(tǒng)日期):如果輸入正確如“T”將出現(xiàn)如下界面(每輸入一次就顯示一次系統(tǒng)時間):如果輸入“Q”,則退出以上界面。、實驗結(jié)果分析:通過以上的結(jié)果顯示可以看出結(jié)果成功完成本次課程設(shè)計的目的和任務(wù),本次課程設(shè)計嚴格按照課程設(shè)計任務(wù)的要求:運行可執(zhí)行程序systime.exe,在出現(xiàn)的提示信息中輸入大

12、寫字母“D”,可顯示系統(tǒng)當前日期;輸入大寫字母“T”,可顯示系統(tǒng)當前時間;輸入大寫字母“Q”,可結(jié)束程序;若不是相關(guān)字符,則不于任何響應(yīng),并不顯示任何信息。但還有缺陷的是不能實時刷新時間,由于這點在課程設(shè)計任務(wù)中沒有相關(guān)要求,因此這次課程設(shè)計可以認為是成功的。九.課程設(shè)計總結(jié)和體會1. 在完成課程設(shè)計過程中,我認識到平時基礎(chǔ)知識的重要性,只有能夠熟練的掌握才能在實驗過程中得心應(yīng)手,否則一步錯則整個試驗都會陷入困境,因而,嚴謹?shù)膽B(tài)度是試驗成功的重要保障!2. 通過這次課程設(shè)計,我們對各個函數(shù)以及語句有了進一步的了解,對各個語句的功能有了更深刻的認識和體會,平時上課的理論知識只是停留在理論的層面,只有通過了這樣的試驗才能更好的體會

溫馨提示

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

評論

0/150

提交評論