電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書目 錄摘 要 . 11 設(shè)計(jì)任務(wù)及要求 . 21.1 設(shè)計(jì)題目 . 21.2 設(shè)計(jì)要求 . 21.3 設(shè)計(jì)目的 . 22 設(shè)計(jì)方案論述 . 32.1 設(shè)計(jì)方案概括 . 32.2 設(shè)計(jì)方案具體說明 . 33 軟件設(shè)計(jì)說明 . 43.1 理論知識介紹 . 43.2 設(shè)計(jì)思路介紹 . 73.3 設(shè)計(jì)流程 . 73.4 程序設(shè)計(jì)說明 . 12 4 調(diào)試結(jié)果及分析 . 22 4.1 程序初始運(yùn)行狀態(tài) . 22 4.2 日期顯示運(yùn)行結(jié)果 . 22 4.3 計(jì)時(shí)功能運(yùn)行結(jié)果 . 23 5 收獲與體會 . 25 參考文獻(xiàn) . 26 附錄:設(shè)計(jì)源程序 . 27 本科生

2、課程設(shè)計(jì)成績評定表. 36 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書1 摘 要本設(shè)計(jì)采用 16位微型處理器 8086cpu以及 86系列微型計(jì)算機(jī)的指令系統(tǒng)利用匯編語言編寫,設(shè)計(jì)一個(gè)界面實(shí)現(xiàn)系統(tǒng)日期及時(shí)間顯示功能,軟件設(shè)計(jì)平臺為masm for windows集成實(shí)驗(yàn)環(huán)境。在本設(shè)計(jì)中,設(shè)計(jì)顯示界面并通過dos 中斷調(diào)用系統(tǒng)時(shí)間,并將調(diào)用的用二進(jìn)制表示的時(shí)間數(shù)轉(zhuǎn)換成ascii 碼,并將時(shí)間數(shù)存入內(nèi)存區(qū)。將存在系統(tǒng)內(nèi)存區(qū)的時(shí)間數(shù)用數(shù)字式鐘表的形式顯示出來。通過讀取鍵盤輸入的相關(guān)內(nèi)容,如:輸入d,則設(shè)計(jì)程序代碼依次讀取系統(tǒng)日期年、月、日,并轉(zhuǎn)換成ascii 碼調(diào)用中斷予以顯示;若在鍵盤輸入h,則

3、啟動秒表功能;輸入q,判斷鍵值后退出系統(tǒng);若不是相關(guān)字符,則不會有任何響應(yīng)。關(guān)鍵詞:系統(tǒng)時(shí)鐘8086cpu 匯編語言武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書2 電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)1 設(shè)計(jì)任務(wù)及要求1.1 設(shè)計(jì)題目掌握 8086 匯編語言程序設(shè)計(jì)方法,設(shè)計(jì)一個(gè)電子時(shí)鐘,實(shí)現(xiàn)分、秒、時(shí)的顯示與刷新功能。1.2 設(shè)計(jì)要求(1)定義顯示界面;(2)調(diào)用系統(tǒng)時(shí)間,并將調(diào)用的用二進(jìn)制表示的時(shí)間數(shù)轉(zhuǎn)換成ascii 碼,并將時(shí)間數(shù)存入內(nèi)存區(qū);(3)將存在系統(tǒng)內(nèi)存區(qū)的時(shí)間數(shù)用顯示字符串的形式顯示出來;(4)為時(shí)鐘加入附加功能,包括日期顯示、計(jì)時(shí)功能;(5)獲取鍵盤的按鍵值,判斷鍵值并退出系;。(6)撰寫課

4、程設(shè)計(jì)說明書。內(nèi)容包括:摘要、目錄、正文、參考文獻(xiàn)、附錄(程序清單) 。正文部分包括:設(shè)計(jì)任務(wù)及要求、方案比較及論證、軟件設(shè)計(jì)說明(軟件思想,流程,源程序設(shè)計(jì)及說明等) 、程序調(diào)試說明和結(jié)果分析、課程設(shè)計(jì)收獲及心得體會。1.3 設(shè)計(jì)目的(1)掌握 8086cpu 微機(jī)系統(tǒng)的存儲子系統(tǒng)設(shè)計(jì);(2)掌握 8086 cpu 微機(jī)系統(tǒng)的中斷控制子系統(tǒng)的設(shè)計(jì);(3)掌握 8086cpu 微機(jī)系統(tǒng)的 i/o 系統(tǒng)的設(shè)計(jì);(4)掌握 8086cpu 微機(jī)系統(tǒng)的初始化匯編編程和具體項(xiàng)目功能的軟件匯編語言代碼編寫。武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書3 2 設(shè)計(jì)方案論述2.1 設(shè)計(jì)方案概括在此次電子時(shí)鐘

5、的設(shè)計(jì)中,主要功能是顯示系統(tǒng)時(shí)間,通過dos 中斷調(diào)用進(jìn)行系統(tǒng)時(shí)間的提取, 然后進(jìn)行輸出至屏幕。 附加功能共包括兩種, 第一種功能為顯示系統(tǒng)的日期,也是通過 dos 中斷提取系統(tǒng)日期輸出至屏幕;第二種功能為作為計(jì)時(shí)器使用,判斷一定時(shí)間段內(nèi)的具體時(shí)間。兩個(gè)功能通過鍵盤按鍵進(jìn)入、退出,整個(gè)電子時(shí)鐘系統(tǒng)也可通過鍵盤按鍵退出。2.2 設(shè)計(jì)方案具體說明2.2.1 顯示系統(tǒng)時(shí)間方案說明時(shí)間顯示的重點(diǎn)分為三部分,第一部分是如何調(diào)用系統(tǒng)時(shí)間,此次電子時(shí)鐘的設(shè)計(jì)通過 ah=2ch;int 21h 的 dos 中斷調(diào)用進(jìn)行系統(tǒng)時(shí)間的提取。提取的時(shí)間為二進(jìn)制的存儲模式,第二部分的重點(diǎn)為將二進(jìn)制數(shù)轉(zhuǎn)換成為ascii

6、碼。第三部分即為將轉(zhuǎn)換的時(shí)間的ascii 碼輸出至屏幕,調(diào)用ah=09h;int 21h 中斷,將存儲的時(shí)間作為字符輸出。2.2.2 顯示系統(tǒng)日期方案說明首先通過判斷是否有按鍵“d”輸入,若有則調(diào)用日期顯示功能,日期顯示同時(shí)間顯示基本相同,只是提取系統(tǒng)日期的指令與調(diào)用時(shí)間不同,為ah=2ah ;int 21h。在進(jìn)行日期顯示的功能中,若有按鍵“l(fā)”則退出此功能。2.2.3 計(jì)時(shí)功能方案說明首先通過判斷是否有按鍵“h”輸入,若有則調(diào)用計(jì)時(shí)功能。進(jìn)入計(jì)時(shí)功能后,按鍵“s”計(jì)時(shí)開始, 按鍵“p”計(jì)時(shí)暫停, 按鍵“g”計(jì)時(shí)繼續(xù),按鍵“t”計(jì)時(shí)停止,按鍵“c”計(jì)時(shí)器清零。武漢理工大學(xué)微機(jī)原理與接口技術(shù)課

7、程設(shè)計(jì)說明書4 3 軟件設(shè)計(jì)說明3.1 理論知識介紹3.1.1 dos中斷與 bios 中斷的功能及調(diào)用(1)dos 中斷類型如表 3-1 所示。表 3-1 dos 中斷類型中斷號中斷名稱中斷號中斷名稱20 程序終止27 結(jié)束并駐留內(nèi)存21 功能調(diào)用28 鍵盤忙循環(huán)22 終止地址29 快速寫字符23 ctr l_c 中斷向量2a 網(wǎng)絡(luò)接口24 嚴(yán)重錯(cuò)誤向量2e 執(zhí)行命令25 絕對磁盤讀2f 多路轉(zhuǎn)接接口26 絕對磁盤寫30-3f 保留給 dos(2)bios 中斷類型如表 3-2 所示。表 3-2 bios 中斷類型中斷號中斷名稱中斷號中斷名稱10 顯示器 i/ o16 鍵盤 i/ o11 取

8、設(shè)備信息17 打印機(jī) i/ o12 取內(nèi)存容量18 rom basic13 磁盤 i/ o19 引導(dǎo)裝入程序14 rs-232 串行口 i/ o1a 時(shí)鐘15 磁帶 i/ o40 軟盤 biosdos 功能與 bios 功能都通過軟件中斷調(diào)用。在中斷調(diào)用前需要把功能號裝入ah寄存器, 把子功能號裝入 al 寄存器, 除此而外,通常還需在 cpu 寄存器中提供專門的調(diào)用參數(shù)。一般地說,調(diào)用 dos 或 bios 功能時(shí),有以下幾個(gè)基本步驟 : 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書5 1)將調(diào)用參數(shù)裝入指定的寄存器中;2)如需功能號,把它裝入 ah ;3)如需子功能號,把它裝入 al ;4

9、)按中斷號調(diào)用 dos 或 bios 中斷;5)檢查返回參數(shù)是否正確。本例中需要的 bios 中斷如表 3 所示。表 3 本課程設(shè)計(jì)所需 bios 中斷類型int ah 功能入口參數(shù)出口參數(shù)10 09h 表示在當(dāng)前的光標(biāo)處按指令屬性顯示字符ah=09h al= 字符bh=顯示頁碼bl= 屬性cx=重復(fù)輸出字符的次數(shù)無10 02h 用文本坐標(biāo)下設(shè)置光標(biāo)位置ah=02h bh=顯示頁碼dh=行( y 坐標(biāo))dl= 列( x 坐標(biāo))無21 01h 從鍵盤輸入一個(gè)字符無al=ascii 21 02h 在屏幕上顯示一個(gè)字符dl=ascii 無16 01h 讀取鍵盤狀態(tài),即讀入輸入字符ah 01h 檢 查

10、 普 通 鍵盤zf1 無字符輸入,否則, ah 鍵盤的掃描碼,al 按鍵的ascii 碼(字符鍵)或者0(其他鍵)16 00h 從鍵盤讀入字符ah 00h 強(qiáng) 制 讀 普 通鍵盤ah 鍵盤的掃描碼al 按鍵的ascii 碼(字符鍵)或者0(其他鍵)10 08h 讀光標(biāo)處的字符及其屬性ah 08h bh顯示頁碼ah 屬性al 字符21 06h 1號 2號功能的組合dl=0ffh 時(shí)為 1號功能;dl寄 存 器 放 入 字 符 的ascii 值時(shí)就是2 號功能無或 al=ascii 1a 02h 讀取時(shí)間ah 02h ch bcd 碼格式的小時(shí);clbcd 碼格式的分鐘;dh bcd 碼格式的秒;

11、 dl00h 標(biāo)準(zhǔn)時(shí)間,否則,夏令時(shí); cf0 時(shí)鐘在走,否則,時(shí)鐘停止3.1.2 子程序的設(shè)計(jì)武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書6 子程序又稱為過程,它相當(dāng)于高級語言中的過程和函數(shù)。 在一個(gè)程序的不同部分,往往要用到類似的程序段,這些程序段的功能和結(jié)構(gòu)形式都相同,只是某些變量的賦值不同, 此時(shí)就可以把這些程序段寫成子程序形式,以便需要時(shí)可以調(diào)用它。過程定義偽操作用在過程(子程序)的前后,使整個(gè)過程形成清晰的、具有特定功能的代碼塊。其格式為:procedure name proc attribute procedure name endp 其中過程名為標(biāo)識符,它又是子程序入口的符號地

12、址。它的寫法和標(biāo)號的寫法相同。屬性(attribute) 是指類型屬性,它可以是near 或 far。段內(nèi)調(diào)用使用 near 屬性, 段間調(diào)用使用 far 屬性。為了使用戶的工作更加方便,80 x86 的匯編程序用 proc 偽操作的類型屬性來確定call和 ret 指令的屬性。也就是說, 如果所定義的過程是far 屬性的, 那么對它的調(diào)用和返回一定都是far 屬性的;如果所定義的過程是near 屬性的, 那么對它的調(diào)用和返回也一定是near 屬性的。這樣,用戶只需在定義過程時(shí)考慮它的屬性,而 call和 ret 的屬性可以由匯編程序來確定。用戶對過程屬性的確定原則很簡單,即:(1)如調(diào)用程序

13、和過程在同一個(gè)代碼段中,則使用 near 屬性;(2)如調(diào)用程序和過程不在同一個(gè)代碼段中,則使用 far 屬性。3.1.3 中斷概述cpu 在執(zhí)行某一程序的過程中, 出現(xiàn)了內(nèi)部或外部某些事件的請求,cpu 暫時(shí)停止當(dāng)前程序的正常執(zhí)行,轉(zhuǎn)去執(zhí)行請求事件的處理工作,cpu 在事件處理結(jié)束后又繼續(xù)原來的程序,這個(gè)過程稱作中斷。中斷程序的入口地址稱作中斷向量。8086 中斷系統(tǒng)最多可以支持256 個(gè)中斷源, 系統(tǒng)將這些中斷向量按照中斷類型碼的順序依次存放在內(nèi)存ram 的最低地址區(qū)的 1024個(gè)內(nèi)存單元中, 這就構(gòu)成了中斷向量表。 中斷向量表的邏輯地址范圍為0000h:0000h-0000h:03ff。

14、另外,中斷向量在中斷向量表中的位置就是中斷向量地址,它與中斷類型碼之間的關(guān)系可以表示如下:中斷向量地址 =0000h: 中斷類型碼 *4 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書7 cpu 在響應(yīng)中斷后,根據(jù)中斷源提供的中斷類型碼,首先計(jì)算出中斷向量地址,然后根據(jù)中斷向量地址在表中查找到相應(yīng)的中斷服務(wù)程序的入口地址。本例中即利用了鍵盤中斷來實(shí)現(xiàn)相應(yīng)的功能。3.2 設(shè)計(jì)思路介紹首先在數(shù)據(jù)段開辟一顯示緩沖區(qū),用來存儲系統(tǒng)時(shí)間。調(diào)用dos 中斷,返回系統(tǒng)時(shí)間,并將來返回的二進(jìn)制時(shí)間轉(zhuǎn)換成ascii 碼,方便時(shí)間顯示時(shí)的調(diào)用。 分別將來小時(shí)數(shù)、分鐘數(shù)、秒數(shù)存入顯示緩沖區(qū),并最終存入一結(jié)束字符號$

15、。調(diào)用 dos 字符串顯示功能將時(shí)間顯示出來。并調(diào)用屏幕i/o 中斷,定位光標(biāo)的開始位置,結(jié)合著將時(shí)間顯示在我們預(yù)先定義好的位置上。由于獲取了的系統(tǒng)時(shí)間不會自動刷新,所以我們要設(shè)計(jì)成刷新的方式來不斷獲取系統(tǒng)的時(shí)間,這樣就形成了會跳動的電子鐘了。時(shí)間顯示的刷新要配合延時(shí)程序進(jìn)行,為了得到良好的顯示效果,延時(shí)程序要盡量接近1 秒,但又不能超過一秒,所以本程序調(diào)用了一段較精確的時(shí)間延遲程序,屏幕顯示延遲一段時(shí)間后再提取系統(tǒng)時(shí)間,然后顯示,由此循環(huán)下去。程序加入附加功能,根據(jù)不同的按鍵選擇不同的功能進(jìn)行實(shí)現(xiàn), d 為顯示系統(tǒng)日期, w 為整點(diǎn)報(bào)時(shí), h 為計(jì)時(shí)功能。各個(gè)功能的推出均為l 按鍵。選擇的某

16、個(gè)功能推出后才可以重新選擇功能。程序的最后還設(shè)計(jì)一了個(gè)按“q”鍵就退出的功能。所有的按鍵都采取了判斷鍵值ascii 碼確定輸入字符的方法確定按鍵值。為了顯示的美觀,還設(shè)計(jì)一個(gè)字符圖界面,通過顯示字符串的方法顯示出來。3.3 設(shè)計(jì)流程在此次的設(shè)計(jì)中根據(jù)設(shè)想功能的實(shí)現(xiàn),在主流程下,共有兩個(gè)分支功能,故其流程圖為一個(gè)主流程圖,兩個(gè)附加功能的子流程圖。3.3.1 主流程圖及說明在主流程圖中可以了解到,進(jìn)入程序后首先清屏,設(shè)置屏幕的顯示,使得界面整體布局安排以及功能的提示信息出現(xiàn)在屏幕上。然后調(diào)用系統(tǒng)時(shí)間,將時(shí)間顯示到設(shè)定好的位置上。接著是進(jìn)行鍵盤狀態(tài)的讀取,判斷有無按鍵按下,如果沒有,重新調(diào)用系統(tǒng)時(shí)間

17、并顯示,如果有按鍵按下,判斷按鍵字符,若為“d” ,執(zhí)行讀取日期子程序;若為“h” ,執(zhí)武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書8 行計(jì)時(shí)器子程序;若為“q” ,則退出程序;如果均不為上述字符,則返回調(diào)用系統(tǒng)時(shí)間。系統(tǒng)主程序流程圖如圖3-1 所示。開始判斷按鍵是否為h判斷按鍵是否為d判斷是否有鍵盤按鍵輸入讀取按鍵字符調(diào)用系統(tǒng)時(shí)間輸出至屏幕顯示設(shè)置屏幕顯示進(jìn)入計(jì)時(shí)器子程序進(jìn)入顯示日期子程序是是否否否是圖 3-1 系統(tǒng)主程序流程圖判斷按鍵是否為q結(jié)束是否武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書9 3.3.2 顯示日期子流程圖及說明日期顯示子程序流程圖如圖3-2 所示。根據(jù)圖 3-2 所示的

18、子流程圖可以分到系統(tǒng)日期顯示的整體過程。在經(jīng)過功能選擇進(jìn)入日期顯示后,首先提取電腦內(nèi)部的系統(tǒng)日期,提取到的系統(tǒng)日期為二進(jìn)制碼,首先將年份的二進(jìn)制碼轉(zhuǎn)換為ascii 碼,存入數(shù)據(jù)段的緩沖區(qū),然后將月份的二進(jìn)制碼轉(zhuǎn)換為ascii碼,存入數(shù)據(jù)段的緩沖區(qū),接著是將日期的二進(jìn)制碼轉(zhuǎn)換為ascii 碼,存入數(shù)據(jù)段的緩沖區(qū),于是緩沖區(qū)中就包含了系統(tǒng)日期的ascii 碼,調(diào)用輸出函數(shù),將系統(tǒng)日期輸出到系統(tǒng)的指定位置。開始提取系統(tǒng)日期將年份數(shù)轉(zhuǎn)為ascii碼并存入datedis中將日期數(shù)轉(zhuǎn)為ascii碼并存入datedis中將分月份轉(zhuǎn)為ascii碼并存入datedis中顯示系統(tǒng)日期返回圖 3-2 日期顯示子程序

19、流程圖武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書10 開始讀取鍵盤值讀取鍵盤值讀取鍵盤值判斷有無按鍵按下按鍵為 s按鍵為 t按鍵為 g按鍵為 p按鍵為 l按鍵為 c開始計(jì)時(shí)停止計(jì)時(shí)判斷有無按鍵按下判斷有無按鍵按下退 出 子程序計(jì)數(shù)器清零是否是否否否是是是否否是是否是否否是圖 3-3 計(jì)時(shí)器子程序流程圖3.3.3 計(jì)時(shí)器的流程圖及說明計(jì)時(shí)器子程序流程圖如圖3-3 所示。武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書11 根據(jù)計(jì)時(shí)器子程序的流程圖可知,進(jìn)入計(jì)時(shí)器程序后,首先是等待計(jì)時(shí)開始,掃面鍵盤是否有按鍵按下,若按下“l(fā)”則推出此計(jì)時(shí)程序,若按下的為“s”則計(jì)時(shí)開始,在計(jì)時(shí)的過程中進(jìn)行按鍵掃描,

20、判斷有無按鍵的輸入,如果沒有則保持計(jì)時(shí),如果判斷按鍵為“p” ,則暫停計(jì)時(shí),此時(shí)不斷掃描鍵盤,若發(fā)現(xiàn)按鍵“g” ,則繼續(xù)計(jì)時(shí),同時(shí)繼續(xù)掃描鍵盤狀態(tài),若發(fā)現(xiàn)按鍵“ t”按下,則停止計(jì)時(shí),同時(shí)掃描按鍵,如果獲取到“c”按下,則對計(jì)數(shù)器清零,此時(shí)返回子程序開始端,重新掃描鍵盤,準(zhǔn)備新一輪的計(jì)時(shí)。3.3.4 系統(tǒng)時(shí)間顯示子程序系統(tǒng)時(shí)間顯示子程序流程圖如圖3-4 所示。開始提取系統(tǒng)時(shí)間將小時(shí)數(shù)轉(zhuǎn)為ascii碼并存入 timedis中將秒數(shù)轉(zhuǎn)為ascii碼并存入 timedis中將分鐘轉(zhuǎn)為ascii碼并存入 timedis中顯示系統(tǒng)時(shí)間返回圖 3-4 時(shí)間顯示子程序流程武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)

21、計(jì)說明書12 3.4 程序設(shè)計(jì)說明3.4.1 清屏程序介紹clear_screen macro op1 ,op2,op3,op4 ;清屏push ax ;入棧保護(hù)現(xiàn)場push bx push cx push dx mov ah ,06h ;向上滾屏mov al ,00h ;全屏幕為空白mov bh ,79h ;空白區(qū)域缺省屬性mov ch ,op1 ;左上角行號mov cl ,op2 ;左上角列號mov dh ,op3 ;右下角行號mov dl ,op4 ;右下角列號int 10h ;bios 對屏幕及顯示器中斷調(diào)用pop dx ;出棧顯示數(shù)據(jù)pop cx pop bx pop ax endm

22、 此為宏定義寫出的清屏指令,首先將寄存器的數(shù)據(jù)壓入堆棧進(jìn)行保護(hù),然后調(diào)用int 10 中斷設(shè)定屏幕顯示。其中ah設(shè)置滾屏方式 06 為向上滾屏, al=0 為設(shè)置窗口的清屏,而 ch、cl、dh、dl 為設(shè)置窗口的大小,根據(jù)設(shè)定的窗口大小確定清屏的范圍。清屏結(jié)束后,將壓入堆棧的寄存器的數(shù)據(jù)彈出,使清屏命令不會影響寄存器的數(shù)值。3.4.2 光標(biāo)定位程序介紹cursor_position macro row ,clm ;設(shè)置光標(biāo)位置宏定義武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書13 push ax ;入棧保護(hù)現(xiàn)場push bx push cx push dx mov ah ,2 mov bh

23、,0 ;光標(biāo)頁號mov dh ,row ;光標(biāo)行號mov dl ,clm ;光標(biāo)列號int 10h ; bios 對屏幕及顯示器中斷調(diào)用mov ah ,1 ;置光標(biāo)類型,不顯示光標(biāo)mov ch ,20h int 10h pop dx ;出棧顯示數(shù)據(jù)pop cx pop bx pop ax endm 此宏定義為光標(biāo)位置的設(shè)定, 首先是寄存器數(shù)據(jù)壓入堆棧保護(hù)。 光標(biāo)設(shè)定需要調(diào)用int 10h,給 ah 賦值 02h,執(zhí)行設(shè)置光標(biāo)位置命令,然后由dh、dl 的數(shù)值確定光標(biāo)的行號和列號。由于根據(jù)設(shè)計(jì)需求, 在此還需設(shè)置光標(biāo)屬性為隱藏,此功能同樣為調(diào)用int 10h,使得 ah 賦值為 01h,根據(jù) c

24、h 的值確定光標(biāo)的屬性。最后為寄存器數(shù)據(jù)出棧。3.4.3 多字符顯示程序介紹show macro b ;宏定義顯示寄存器中內(nèi)容lea dx ,b ;將 b 的首地址給 dx mov ah ,9 ;顯示器 i/o,多字符輸出int 21h ;dos 中斷調(diào)用endm 此處宏定義為多字符的屏幕顯示,首先是將需要顯示的字符的存儲區(qū)的便宜地址給武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書14 dx ,然后通過功能調(diào)用ah=09h;int 21h,便可將多個(gè)字符輸出至屏幕。3.4.4 讀取鍵盤狀態(tài)程序介紹scankey macro push ax mov ah , 01h int 16h pop ax

25、endm 此處宏定義為讀取鍵盤狀態(tài),通過功能調(diào)用ah=01h;int 21h 即可實(shí)現(xiàn),如有按鍵按下,則 zf=1,若無,則 zf=0。3.4.5 讀取鍵盤值程序介紹inpkey macro push ax mov ah , 00h int 16h mov bl , al pop ax endm 此處宏定義為讀取鍵盤函數(shù)值,通過功能調(diào)用ah=00h;int 21h 實(shí)現(xiàn),此命令會將鍵盤按鍵的 ascii 碼值輸入至 al 寄存器中。3.4.6 調(diào)用系統(tǒng)時(shí)間顯示程序介紹timedisplay proc near ;定義時(shí)間顯示子程序mov ah ,2ch ;取當(dāng)前系統(tǒng)時(shí)間int 21h mov

26、bx ,10 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書15 lea di ,timedis ;timedis 的首地址給 di mov al ,ch ;小時(shí)傳遞給 al xor ah ,ah ;ah 清零div bl ;小時(shí)的十位為 ah,個(gè)位為 al add ax ,3030h ;轉(zhuǎn)為 ascii 碼mov di+1 ,ax ;將小時(shí)存入 di+1 mov al ,cl ;將分鐘傳遞給 al xor ah ,ah ;ah 清零div bl ;分鐘的高位為 ah,低位為 al add ax ,3030h ;轉(zhuǎn)為 ascii 碼mov di+6 ,ax ;將分鐘存入 di+6 mov al

27、,dh ;將秒傳遞給 al xor ah ,ah ;ah 清零div bl ;秒的高位存入 ah,低位存入 al add ax ,3030h ;轉(zhuǎn)換 ascii 碼mov di+11 ,ax ;將秒存入di+11 cursor_position 8,21h show timedis ;顯示 timedis 中內(nèi)容 系統(tǒng)時(shí)間ret ;時(shí)間調(diào)用返回timedisplay endp 此處子程序?yàn)檎{(diào)用系統(tǒng)時(shí)間,然后到屏幕輸出,系統(tǒng)時(shí)間的調(diào)用采用dos 功能調(diào)用,ah=2ch;int 21h,調(diào)用后的系統(tǒng)時(shí)間,將小時(shí)的二進(jìn)制碼保存在ch 寄存器中,分鐘的二進(jìn)制碼存入 cl 寄存器中,秒數(shù)的二進(jìn)制碼存入d

28、h 寄存器中,然后dl 寄存器中的值為 1/100 秒,根據(jù)設(shè)計(jì)要求只需要保存ch、cl、dh 中的內(nèi)容,并將其除以10,先轉(zhuǎn)換為 bcd 碼,再加上 3030h,轉(zhuǎn)換為 ascii 碼,存入設(shè)置的數(shù)據(jù)緩沖區(qū)。然后定義光標(biāo)位置,調(diào)用輸出命令,將其輸出至屏幕。3.4.7 調(diào)用系統(tǒng)日期顯示程序介紹datedisplay proc near ;定義日期顯示子程序武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書16 mov ah ,2ah ;取當(dāng)前系統(tǒng)日期int 21h mov ax , cx ; 送年份入 ax (二進(jìn)制數(shù))mov bx , 10 ;(bx)=10 lea si, datedis + 1

29、4 ;使 si 指向年的最后一位mov cx , 4 ;(cx)=4 push dx ;保存月日tab: xor dx , dx ;dx 清零div bx ;(dx ,ax)/bx ,商送 ax ,余數(shù)送 dx()add dl , 30h ;余數(shù)與 30h 相加變?yōu)樽址?ascii 碼mov si , dl ;余數(shù)送入 si 所指向的字節(jié)區(qū)dec si ;si 減一loop tab ;循環(huán)(將 4 個(gè) 8 字節(jié)的年份存入 si)pop dx ;dx 還原mov al , dl ;日送 al xor ah , ah ;ah 清零div bl ;ax/bl ,商送 ah,余數(shù)送 al add a

30、x , 3030h ;轉(zhuǎn)變?yōu)閿?shù)字字符的ascii 碼sub si, 4 ;使 si 指向日的第一位mov si , ax ;(ax) 送 si 所指向的字節(jié)區(qū)(將 4 位表示變?yōu)?8 位表示)mov al , dh ;月送 al xor ah , ah ;ah 清零div bl ;ax/bl , 商送 ah,余數(shù)送 al add ax , 3030h ;轉(zhuǎn)變?yōu)閿?shù)字字符的ascii 碼sub si, 5 ;使 si 指向月的第一位mov si , ax ;(ax) 送 si 所指向的字節(jié)區(qū)cursor_position 10h,28h show datedis ;顯示日期cursor_posit

31、ion 10h,10h 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書17 show mess3 ret ;調(diào)用后返回datedisplay endp 此處子程序?yàn)檎{(diào)用系統(tǒng)日期,然后到屏幕輸出,系統(tǒng)時(shí)間的調(diào)用采用dos 功能調(diào)用,ah=2ah ;int 21h,調(diào)用后的系統(tǒng)日期, 將年份的二進(jìn)制碼保存在cx 寄存器中,月份的二進(jìn)制碼存入 dh 寄存器中,日的二進(jìn)制碼存入dl 寄存器中。其流程跟時(shí)間顯示基本一致,將提取的二進(jìn)制碼轉(zhuǎn)換為ascii 碼,存入緩沖區(qū),定義輸出位置輸出。3.4.8 計(jì)時(shí)器程序介紹chronograph proc near cursor_position 10h,14h s

32、how mess4 cursor_position 10h,28h show mess5 chph: call timedisplay scankey call delay_1 je clear inpkey cmp bl, 53h je stat jmp clear stat: call timedisplay call time scankey je stat inpkey cmp bl, 50h 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書18 je pause cmp bl, 54h je pause jmp stat pause: call timedisplay scankey j

33、e pause inpkey cmp bl, 47h je stat cmp bl, 43h je clear call timedisplay jmp pause clear: call timedisplay mov count1 , 0 mov count2 , 0 mov count3 , 0 ret chronograph endp 計(jì)時(shí)器子程序首先顯示提示界面,通過按鍵的判斷執(zhí)行不同的功能選擇,主要通過提取鍵盤值,然后進(jìn)行程序的跳轉(zhuǎn)完成。3.4.9 將二進(jìn)制數(shù)轉(zhuǎn)換為ascii 碼程序介紹change proc near mov cx ,10d ;顯示十位call decdiv 武漢

34、理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書19 mov cx ,1 ;顯示個(gè)位call decdiv ret change endp decdiv proc near ;轉(zhuǎn)化成字符顯示mov dx ,0 div cx mov bx ,0 add al ,30h ;轉(zhuǎn)換成 ascii mov ah ,0eh int 10h ;顯示一個(gè)字符mov ax ,dx ret decdiv endp 以上程序完成的為進(jìn)制轉(zhuǎn)換,首先將二進(jìn)制數(shù)除以10 將商和余數(shù)分別保存,轉(zhuǎn)換為bcd 碼,分十位、個(gè)位分別操作,分別加上30h 調(diào)整為 ascii 碼。3.4.10 計(jì)時(shí)程序介紹time proc push ax

35、 push dx main: mov ah , 2 int 1ah cmp dh, second jne get jmp next get: mov second, dh 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書20 inc count1 mov ax , count1 cmp ax, 32h jne next4 mov count1 , 0 inc count2 mov ax , count2 cmp ax, 32h jne next4 mov count2 , 0 inc count3 next4: cursor_position 10h,28h mov ax , count3 cal

36、l change mov ah , 2 mov dl , : int 21h cursor_position 10h, 2bh mov ax , count2 call change mov ah , 2 mov dl , : int 21h cursor_position 10h, 2eh mov ax , count1 call change next: pop dx 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書21 pop ax ret time endp 此程序?yàn)橛?jì)時(shí)器的主體程序,通過功能調(diào)用ah=2;int 1ah ,得到系統(tǒng)時(shí)間,并且得到系統(tǒng)現(xiàn)在的秒數(shù),保存至dh 寄存器中,首先將

37、 second 賦值為 0,然后和提取的秒對比,若相等,則輸出此時(shí)的計(jì)時(shí)的小時(shí)、分鐘、秒,若不想等,秒加一,且將dh 的值賦給 second,在此輸出,同時(shí)考慮分鐘的最大值,若到達(dá)60,則將分鐘值加一,秒數(shù)清零,輸出,若分鐘數(shù)達(dá)到60,則將小時(shí)數(shù)加一,分鐘數(shù)清零輸出。武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書22 4 調(diào)試結(jié)果及分析4.1 程序初始運(yùn)行狀態(tài)程序運(yùn)行之后,屏幕出現(xiàn)程序初始界面如圖4-1 所示。圖 4-1 程序初始界面在此界面下,如果有按鍵“q”(必須是大寫的 ) 按下,則會退出此執(zhí)行界面。根據(jù)界面顯示的不同提示語句,可根據(jù)不同的輸入實(shí)現(xiàn)不同的功能。4.2 日期顯示運(yùn)行結(jié)果在程序

38、初始界面的前提下,按下鍵盤“d” ,則進(jìn)入日期顯示功能,其日期顯示界面如圖 4-2 所示。在此界面下,會輸出系統(tǒng)的當(dāng)前日期,只有當(dāng)按下鍵盤“l(fā)”后,退出此功能,且回到程序初始界面。武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書23 圖 4-2 日期顯示界面4.3 計(jì)時(shí)功能運(yùn)行結(jié)果在程序初始界面的前提下,按下鍵盤“h” ,則進(jìn)入計(jì)時(shí)功能,計(jì)時(shí)功能界面如圖4-3所示。圖 4-3 計(jì)時(shí)功能界面武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書24 此界面顯示程序進(jìn)入計(jì)時(shí)器功能,程序準(zhǔn)備好計(jì)時(shí),此事按下鍵盤“s” ,計(jì)時(shí)開始,計(jì)時(shí)時(shí)間開始運(yùn)行,得到的計(jì)時(shí)功能開始后界面如圖4-4 所示。圖 4-4 計(jì)時(shí)功能開始

39、后界面在此界面中,顯示已經(jīng)經(jīng)過的時(shí)間,在此狀態(tài)下,按下鍵盤“p” ,計(jì)時(shí)暫停,界面上的計(jì)時(shí)器出的時(shí)間顯示暫停,不再變化。此時(shí)若按下“g” ,計(jì)時(shí)繼續(xù)開始,在原來時(shí)間的基礎(chǔ)上繼續(xù)變化。若有鍵盤“t”按下,則計(jì)時(shí)停止。如果按下鍵盤“c” ,計(jì)時(shí)器清零,界面計(jì)時(shí)器處的顯示重新為00:00:00,此事等待重新計(jì)時(shí)按鍵“ s” ,或退出按鍵“ l”使屏幕恢復(fù)到初始運(yùn)行狀態(tài)。武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書25 5 收獲與體會微機(jī)原理與接口技術(shù)是一門很有趣的課程,任何一個(gè)計(jì)算機(jī)系統(tǒng)都是一個(gè)復(fù)雜的整體,學(xué)習(xí)計(jì)算機(jī)原理是要涉及到整體的每一部分。討論某一部分原理時(shí)又要涉及到其它部分的工作原理。這樣一

40、來,不僅不能在短時(shí)間內(nèi)較深入理解計(jì)算機(jī)的工作原理,而且也很難孤立地理解某一部分的工作原理。所以,在循序漸進(jìn)的課堂教學(xué)過程中, 我總是處于“學(xué)會了一些新知識,弄清了一些原來保留的問題,又出現(xiàn)了一些新問題”的循環(huán)中,直到課程結(jié)束時(shí),才把保留的問題基本搞清楚。在此次的課程設(shè)計(jì)的上機(jī)與理論學(xué)習(xí),帶給了我更深的感受。此次課程設(shè)計(jì)讓我了解到編寫程序的復(fù)雜性,必須保持編寫程序時(shí)的細(xì)心認(rèn)真。為了編寫程序方便,以及程序調(diào)試的方便,將程序進(jìn)行分塊書寫,便于程序的閱讀、改正,以及更多功能的增添。同時(shí)在程序的運(yùn)行、調(diào)試過程也遇到了比較繁瑣的難題。第一是光標(biāo)的閃爍問題,由于要不斷的調(diào)用系統(tǒng)時(shí)間,不斷的光標(biāo)定位,然后輸出

41、到屏幕顯示。由于時(shí)間比較快,所以不斷閃爍。最后選擇解決方案為設(shè)置光標(biāo)的屬性,將光標(biāo)設(shè)置為隱藏不顯示。第二是功能選擇問題,由于跳轉(zhuǎn)的選項(xiàng)較多,使得各功能的進(jìn)入退出出現(xiàn)問題,經(jīng)過不斷的調(diào)試,整理思路,調(diào)整程序順序,以達(dá)到最后的功能。第三就是計(jì)時(shí)器功能的實(shí)現(xiàn),需要不斷的需系統(tǒng)時(shí)間進(jìn)行對比,系統(tǒng)時(shí)間變化一秒,計(jì)時(shí)器數(shù)值增加一秒,同時(shí)將計(jì)時(shí)器存儲的數(shù)值分為小時(shí)、分鐘、秒存儲,且需要將其轉(zhuǎn)換為 ascii 碼進(jìn)行輸出。在解決程序設(shè)計(jì)出現(xiàn)的問題的同時(shí)我也體會到在二進(jìn)制轉(zhuǎn)化成ascii 碼的過程中, 二進(jìn)制數(shù)首先轉(zhuǎn)化為雙四位的bcd 碼,再將高四位低四位分別相加30h,從而轉(zhuǎn)化為 ascii碼,此時(shí)要對照書本

42、ascii 碼表,了解電腦 cpu 如何將 ascii 碼的信息轉(zhuǎn)換成顯示字符。再有要多多學(xué)習(xí)經(jīng)典程序書寫思路、方式,且熟練掌握,將其作為自己的子程序運(yùn)用到自己的設(shè)計(jì)當(dāng)中去。此次課程設(shè)計(jì),讓我們將理論知識于實(shí)際相結(jié)合,自己深入設(shè)計(jì)其中,感到了自己的進(jìn)步,也發(fā)現(xiàn)了自己的不足。明確自己需要在以后不斷學(xué)習(xí),不斷進(jìn)取,同時(shí)也感謝老師在此次課程設(shè)計(jì)中的指導(dǎo)幫助。武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書26 參考文獻(xiàn)1 姚燕南 , 薛均義主編 . 微型計(jì)算機(jī)原理與接口技術(shù). 高等教育出版社 , 2004 2 李群芳 , 張士軍 , 黃建編著 . 單片機(jī)微型計(jì)算機(jī)與接口技術(shù). 電子工業(yè)出版社 , 200

43、5 3 薛均義主編 . 微型計(jì)算機(jī)原理及應(yīng)用( intel 80x86 系列) . 機(jī)械工業(yè)出版 , 2002 4 黃明, 梁旭, 常征著 . 匯編語言程序設(shè)計(jì)習(xí)題詳解. 北京:機(jī)械工業(yè)出版社 , 2004 5 王永山 , 楊宏五 , 楊嬋娟著 . 微型計(jì)算機(jī)原理與應(yīng)用(第二版). 西安 :西安電子科技大學(xué)出版社 , 2006 6 溫冬蟬 , 沈美明 . ibm pc 匯編語言程序設(shè)計(jì) (第 2 版). 北京:清華大學(xué)出版社 , 2002 7 姚燕南 , 薛均義主編 . 微型計(jì)算機(jī)原理與接口技術(shù). 北京:高等教育出版社 , 2004 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書27 附錄:設(shè)計(jì)

44、源程序;name: electronic clock ;design by baixiaomeng,dianqi1107 ;*清屏 * clear_screen macro op1,op2,op3,op4 ;清屏push ax ;入棧保護(hù)現(xiàn)場push bx push cx push dx mov ah,06h ;向上滾屏mov al,00h ;全屏幕為空白mov bh,79h ;空白區(qū)域缺省屬性mov ch,op1 ;左上角行號mov cl,op2 ;左上角列號mov dh,op3 ;右下角行號mov dl,op4 ;右下角列號int 10h ;bios 對屏幕及顯示器中斷調(diào)用pop dx ;

45、出棧顯示數(shù)據(jù)pop cx pop bx pop ax endm ;*光標(biāo)定位 * cursor_position macro row,clm ;設(shè)置光標(biāo)位置宏定義push ax ;入棧保護(hù)現(xiàn)場push bx push cx push dx mov ah,2 mov bh,0 ; 光標(biāo)頁號mov dh,row ; 光標(biāo)行號mov dl,clm ; 光標(biāo)列號int 10h ; bios 對屏幕及顯示器中斷調(diào)用mov ah,1 ; 置光標(biāo)類型 ,不顯示光標(biāo)mov ch,20h int 10h pop dx ;出棧顯示數(shù)據(jù)pop cx 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書28 pop bx p

46、op ax endm ;*字符顯示 * show macro b ;宏定義顯示寄存器中內(nèi)容lea dx,b ;將b的首地址給 dx mov ah,9 ;顯示器 i/o,多字符輸出int 21h ;dos中斷調(diào)用endm ;*從鍵盤輸入一個(gè)字符* input macro push ax mov ah, 1 int 21h mov bl, al pop ax endm ;*讀取鍵盤狀態(tài)* scankey macro push ax mov ah, 01h int 16h pop ax endm ;*讀取鍵盤值 * inpkey macro push ax mov ah, 00h int 16h m

47、ov bl, al pop ax endm ;*定義數(shù)據(jù)段 * data segment mess1 dbwelcome to my beautiful ! ,$,0ah,0dh mess2 db ,0ah,0dh 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書29 db +-(*_*)-+ ,0ah,0dh db + + ,0ah,0dh db + electronic clock + ,0ah,0dh db + baixiaomeng + ,0ah,0dh db + the time is now : + ,0ah,0dh db + + ,0ah,0dh db + + ,0ah,0dh db

48、 + additional function : + ,0ah,0dh db + 1.show date time open:d close:l + ,0ah,0dh db + 2.chronograph open:h close:l + ,0ah,0dh db + start:s pause:p continue:g stop:t clear:c + ,0ah,0dh db + + ,0ah,0dh db + + ,0ah,0dh db + + ,0ah,0dh db + press q button to quit + ,0ah,0dh db +*+ ,$ mess3 db the dat

49、e time is now:,0ah,0dh,$ mess4 db the past time is:,0ah,0dh,$ mess5 db 00:00:00,0ah,0dh,$ mess6 db zheng dian bao shi,0ah,0dh,$ d_buf1 db 20 dup(?) ;在數(shù)據(jù)段開辟一時(shí)間顯示緩沖區(qū)d_buf2 db 20 dup(?) second db 0 count1 dw 0 ;秒count2 dw 0 ;分count3 dw 0 ;時(shí)datedis db 00 - 00 - 0000,0ah,$ ;顯示 date timedis db 00 ,3ah, 00

50、 ,3ah, 00 ,0ah,$ data ends ;*定義堆棧段 * stack segment db 100 dup(?) stack ends ;*定義指令段 * code segment assume cs:code,ss:stack,ds:data start: mov ah,0 ;設(shè)置顯示模式mov al,3 ;文字分辨率 80*25 顏色 16 int 10h ;bios 對屏幕及顯示器中斷調(diào)用clear_screen 00h,00h,50h,50h ;調(diào)用宏定義設(shè)置區(qū)域mov ax,data ;數(shù)據(jù)段首地址給ax 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書30 mov ds

51、,ax ;數(shù)據(jù)段首地址給ds mov ax,stack ;堆棧段首地址給ax mov ss,ax ;堆棧段首地址給ss cursor_position 1,1 show mess1 cursor_position 2,1 show mess2 loop1: call timedisplay scankey je loop1 inpkey cmp bl, 57h je zdtm cmp bl, 44h je date cmp bl, 48h je chro cmp bl, 51h je quit jmp loop1 date: call datedisplay call timedisplay

52、scankey je date inpkey cmp bl, 4ch jne date clear_screen 0fh,0fh,10h,37h cursor_position 0eh,15 jmp loop1 chro: call chronograph call timedisplay scankey je chro inpkey cmp bl, 4ch jne chro clear_screen 0fh,0fh,10h,37h cursor_position 0eh,15 jmp loop1 zdtm: cursor_position 10h, 1dh show mess6 武漢理工大學(xué)

53、微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書31 call timedisplay scankey je zdtm inpkey cmp bl, 4ch jne zdtm clear_screen 0fh,0fh,10h,37h jmp loop1 quit: cursor_position 14h,1h mov ah, 4ch int 21h ;*秒表子程序 * chronograph proc near cursor_position 10h,14h show mess4 cursor_position 10h,28h show mess5 chph: call timedisplay scankey

54、 call delay_1 je clear inpkey cmp bl, 53h je stat jmp clear stat: call timedisplay call time scankey je stat inpkey cmp bl, 50h je pause cmp bl, 54h je pause jmp stat pause: call timedisplay scankey je pause inpkey 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書32 cmp bl, 47h je stat cmp bl, 43h je clear call timedisplay jm

55、p pause clear: call timedisplay mov count1, 0 mov count2, 0 mov count3, 0 ret chronograph endp ;*時(shí)間顯示子程序* timedisplay proc near ;定義時(shí)間顯示子程序mov ah,2ch ;取當(dāng)前系統(tǒng)時(shí)間int 21h mov bx,10 lea di,timedis ;timedis 的首地址給 di mov al,ch ;小時(shí)傳遞給 al xor ah,ah ;ah 清零div bl ;小時(shí)的十位為 ah, 個(gè)位為 al add ax,3030h ;轉(zhuǎn)為 ascii 碼mov di

56、+1,ax ;將小時(shí)存入 di+1 mov al,cl ;將分鐘傳遞給 al xor ah,ah ;ah 清零div bl ;分鐘的高位為 ah, 低位為 al add ax,3030h ;轉(zhuǎn)為 ascii 碼mov di+6,ax ;將分鐘存入 di+6 mov al,dh ;將秒傳遞給 al xor ah,ah ;ah 清零div bl ;秒的高位存入 ah, 低位存入 al add ax,3030h ;轉(zhuǎn)換 ascii 碼mov di+11,ax ;將秒存入di+11 cursor_position 8,21h show timedis ;顯示 timedis 中內(nèi)容系統(tǒng)時(shí)間ret ;時(shí)間調(diào)用返回timedisplay endp ;*延遲時(shí)間子程序* delay proc 武漢理工大學(xué)微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說明書33 push cx mov cx, 0fffh next_d: nop loop next_d pop cx ret delay endp ;*短延時(shí) * d

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論