微機(jī)原理課程設(shè)計(jì)-顯示時(shí)間日期_第1頁
微機(jī)原理課程設(shè)計(jì)-顯示時(shí)間日期_第2頁
微機(jī)原理課程設(shè)計(jì)-顯示時(shí)間日期_第3頁
微機(jī)原理課程設(shè)計(jì)-顯示時(shí)間日期_第4頁
微機(jī)原理課程設(shè)計(jì)-顯示時(shí)間日期_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余3頁可下載查看

下載本文檔

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

文檔簡介

1、、課程設(shè)計(jì)目的用匯編語言獨(dú)立完成一個(gè)程序題 , 以達(dá)到熟練運(yùn)用匯編語言編程實(shí)現(xiàn)有比較完 整功能的 程序的目的。(1學(xué)習(xí)分支、中斷、和邏輯表達(dá)。(2熟悉匯編語言程序的編譯、鏈接過程。二.課程設(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ì)方案通過調(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ì)及功能解說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)用bio

3、s 16H中斷的1號(hào)功能 , 讀取鍵盤的狀態(tài) .CMP AL,'D'JNE CHKT;如果輸入的是字母D 則”跳轉(zhuǎn)執(zhí)行 CHKT 子程序CALL DSPD; 響應(yīng)按鍵 'D'JMP SCANK將讀取的二進(jìn)制代碼循環(huán)右移2、BCD 碼轉(zhuǎ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 碼將顯示在屏幕上。注

4、意:BL=前景色;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、DSP BCD P ROC 子程序即日期時(shí)間顯示程序,以日期顯示程序?yàn)槔ㄟ^讀取系統(tǒng)的日期項(xiàng)如 年”由 于讀取的日期項(xiàng)是二進(jìn)制代碼,所以調(diào)用DSPBCD ,把讀取的系統(tǒng)日期

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

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

7、的起始地址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)按鍵 TJMP SCANK;跳轉(zhuǎn)至U SCANKCHKQ:;可以添加代

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

9、V AL,CHINT 10H微型計(jì)算機(jī)原理與課程設(shè)計(jì)課程設(shè)計(jì) POP CX;退出當(dāng)前堆棧段POP AX RETDSP BCD ENDP ;功能:顯示系統(tǒng)日期;入口 : BH=頁號(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,71HCALL DSPBCD ;顯示一個(gè)日期項(xiàng) ,如:年 MOV AX,0E2EH ;'.' 的 ASCII 碼為 2E INT 10H POP AX D

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

11、SCII 碼為 3A INT 10H POP AX SUB AL,2 LOOP GETT; 條 件下繼續(xù)循環(huán)GETT POP CX;退出堆棧段POP AX RET;返回主程序執(zhí)行DSPTENDP CODE ENDS END START ;程序結(jié)束 ;顯示一個(gè)分隔符 ':' ;子程序 GETT PUSHAX; 讀取一個(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)如下界面,沒任何反應(yīng),也不顯 示任何信息 : -6-微型計(jì)算機(jī)原理與課程設(shè)計(jì)課程設(shè)計(jì) 如果輸入正確如 "D" 將出現(xiàn)如

12、下界面 (每 輸入一次就顯示一次系統(tǒng)日期:如果輸入正確如"T"將出現(xiàn)如下界面(每輸入一次就 顯示一次系統(tǒng)時(shí)間:如果輸入"Q",則退出以上界面.2,實(shí)驗(yàn)結(jié)果分析:實(shí)驗(yàn)結(jié)果分析: 通過以上的結(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",可顯示系統(tǒng)當(dāng)前時(shí)間; 輸入大寫字 -7-微型計(jì)算機(jī)原理與課程設(shè)計(jì)課程設(shè)計(jì)母"Q",可結(jié)束程序;若不

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

溫馨提示

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