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

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、bios 16H 中斷的 1號(hào)功能 , 讀取鍵盤的狀態(tài) .CMP AL,'D'JNE CHKT;如果輸入的是字母“ D ”則跳轉(zhuǎn)執(zhí)行 CHKT 子程序CALL DSPD;響應(yīng)按鍵 'D'JMP SCANK2、 BCD 碼轉(zhuǎn)換將讀取的二進(jìn)制代碼循環(huán)右移 4位,相當(dāng)于將二進(jìn)制轉(zhuǎn)換成 16進(jìn)制;將AX寄存器內(nèi) 容與3030進(jìn)行或運(yùn)算,把AH單元傳遞于CH寄存器;程序代碼如下:ROR AX,CLSHR AH,CLOR AX,3030HMOV CH,AH3、 顯示部分調(diào)用 10號(hào)中斷的 0E 功能顯示 AL 寄存器的內(nèi)容,即 BCD 碼將顯示在屏幕上。注意:BL=前景色;

4、 AL=字符。 BCD 碼顯示代碼如下所示:MOV AH,0EHINT 10H;調(diào)用 10號(hào)中斷的 0E 功能顯示MOV AL,CHINT 10H五、程序設(shè)計(jì)流程圖六 . 程序段功能匯總1、 MAIN 程序用 SCANK:;掃描鍵盤輸入,根據(jù)鍵盤輸入調(diào)用 bios 16H 中斷的 1號(hào)功能 , 讀取鍵盤 的狀態(tài),根據(jù)輸入的字母,與字母“D"進(jìn)行比較疑惑,若異或值為1則去執(zhí)行 CHKT , 并響應(yīng)按鍵 D 。其他如輸入“ T ”和“ Q ”時(shí)同理。2、 DSPBCD PROC子程序即日期時(shí)間顯示程序,以日期顯示程序?yàn)槔?通過(guò)讀取系統(tǒng)的日期項(xiàng)如“年” , 由 于讀取的日期項(xiàng)是二進(jìn)制代碼,

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

6、棧寄存器,按 循環(huán)要求讀取系統(tǒng)時(shí)間項(xiàng),由于讀取的日期項(xiàng)是二進(jìn)制代碼,因此需調(diào)用 DSPBCD PROC子程序轉(zhuǎn)換為 BCD 碼并予以顯示;執(zhí)行完 DSPBCD PROC子程序后調(diào)用 10號(hào)中斷顯示一 個(gè)分隔符,完成一個(gè)日期項(xiàng)的顯示,然后再循環(huán)去讀取其他日期項(xiàng);最后返回主程序執(zhí) 行主程序。其執(zhí)行過(guò)程與執(zhí)行 DSPD PROC子程序相似。七 . 程序清單STACK SEGMENT STACK ;定義堆棧段STACKH DB 20H DUP(?STSIZE EQU $-STACKHSTACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK;,DS:DATASTART:

7、 ;程序執(zhí)行的起始地址MOV AX,STACK;堆棧段經(jīng) AX 寄存器轉(zhuǎn)移到 SS 寄存器MOV SS,AXMOV SP,STSIZESCANK:;掃描鍵盤輸入XOR AX,AXINT 16H;調(diào)用 bios 16H 中斷的 1號(hào)功能 , 讀取鍵盤的狀態(tài) .CMP AL,'D' AL=D ?JNE CHKT;如果不相等跳轉(zhuǎn)到子程序CHKTCALL DSPD;響應(yīng)按鍵 'D'JMP SCANKCHKT:CMP AL,'T'與字母“ T ”進(jìn)行比較JNE CHKQ;如果不相等跳轉(zhuǎn)到子程序CHKQ執(zhí)行 CALL DSPT;響應(yīng)按鍵 'T'

8、;JMP SCANK;跳轉(zhuǎn)到SCANKCHKQ:;可以添加代碼以響應(yīng)其他按鍵;否則,它們將被忽略CMP AL,'Q'JE EXIT;響應(yīng)按鍵 'Q'JMP SCANK;跳轉(zhuǎn)執(zhí)行到子程序SCANKEXIT:MOV AX,4C00H;退出當(dāng)前系統(tǒng)INT 21H; 功能:顯示一個(gè)壓縮 BCD 碼; 入口: BH=頁(yè)號(hào); BL=前景色; AL=壓縮 BCD 碼DSPBCD PROCPUSH AXPUSH CXMOV CL,4;串長(zhǎng)度為 4MOV AH,0;把讀取的二進(jìn)位數(shù)轉(zhuǎn)為 BCD 碼ROR AX,CLSHR AH,CLOR AX,3030HMOV CH,AH;顯示

9、BCD 碼MOV AH,0EHINT 10H;調(diào)用 10號(hào)中斷的 0E 功能顯示MOV AL,CHINT 10H微型計(jì)算機(jī)原理與課程設(shè)計(jì)課程設(shè)計(jì) POP CX;退出當(dāng)前堆棧段 POP AX RET DSPBCD ENDP ;功能: 顯示系統(tǒng)日期 ;入口: BH=頁(yè)號(hào),BL=前景色 ; DSPD 直接傳給 DSPBCD DSPD PROC PUSH AX;定義堆棧段地址 PUSH CX MOV AL,9 MOV CX,3;定義循環(huán)次數(shù) 3 次 GETD: PUSH AX ;讀取系統(tǒng)日期項(xiàng) OUT 70H,AL IN AL,71H CALL DSPBCD ;顯示一個(gè)日期項(xiàng),如:年 MOV AX,0

10、E2EH ;'.'的 ASCII 碼為 2E INT 10H POP AX DEC AL LOOP GETD;繼續(xù)循環(huán) GETD POP CX POP AX RET DSPD ENDP ;功能: 顯示系統(tǒng)時(shí)間 ;入口: BH=頁(yè)號(hào),BL=前景色 ; DSPT 直接傳給 DSPBCD DSPT PROC PUSH AX PUSH CX MOV AL,04H;定義串長(zhǎng)度 -5- ;子程序定義 ;顯示一個(gè)分隔符'.' 微型計(jì)算機(jī)原理與課程設(shè)計(jì)課程設(shè)計(jì) MOV CX,3;定義循環(huán)次數(shù) 3 次,分別讀取時(shí),分,秒 GETT: OUT 70H,AL IN AL,71H CA

11、LL DSPBCD ;顯示一個(gè)日期項(xiàng),如:日 MOV AX,0E3AH ;':'的 ASCII 碼為 3A INT 10H POP AX SUB AL,2 LOOP GETT;條件下繼續(xù)循環(huán) GETT POP CX;退出堆棧段 POP AX RET;返回主程序執(zhí)行 DSPT ENDP CODE ENDS END START ;程序結(jié)束 ;顯示一個(gè)分隔符':' ;子程序 GETT PUSH AX;讀取一個(gè)系統(tǒng)時(shí)間項(xiàng) 八.試驗(yàn)結(jié)果及分析 試驗(yàn)結(jié)果及分析 1,實(shí)驗(yàn)結(jié)果 雙擊 systime.exe,程序初始運(yùn)行界面: 如果按錯(cuò)了鍵,會(huì)出現(xiàn)如下界面,沒(méi)任何反應(yīng),也不顯示

12、任何信息: -6- 微型計(jì)算機(jī)原理與課程設(shè)計(jì)課程設(shè)計(jì) 如果輸入正確如"D"將出現(xiàn)如下界面(每輸入一次就顯示一次系統(tǒng)日期 : 如果輸入正確如"T"將出現(xiàn)如下界面(每輸入一次就顯示一次系統(tǒng)時(shí)間: 如果輸入"Q" ,則退出以上界面. 2,實(shí)驗(yàn)結(jié)果分析: 實(shí)驗(yàn)結(jié)果分析: 通過(guò)以上的結(jié)果顯示可以看出結(jié)果成功完成本次課程設(shè)計(jì)的目的和任務(wù), 本次課程設(shè)計(jì) 嚴(yán)格按照課程設(shè)計(jì)任務(wù)的要求:運(yùn)行可執(zhí)行程序 systime.exe,在出現(xiàn)的提示信息中輸入大 寫字母"D",可顯示系統(tǒng)當(dāng)前日期;輸入大寫字母"T",可顯示系

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論