電子時(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頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEword文檔可自由復(fù)制編輯武漢理工大學(xué)《微機(jī)原理與接口技術(shù)》課程設(shè)計(jì)說明書學(xué)號:課程設(shè)計(jì)題目電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)學(xué)院自動(dòng)化學(xué)院專業(yè)電氣工程及其自動(dòng)化班級姓名指導(dǎo)教師2014年1月9日

課程設(shè)計(jì)任務(wù)書學(xué)生姓名:專業(yè)班級:指導(dǎo)教師:工作單位:題目:電子時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)初始條件:掌握8086匯編語言程序設(shè)計(jì)方法,設(shè)計(jì)一個(gè)電子時(shí)鐘,實(shí)現(xiàn)分、秒、時(shí)的顯示與刷新功能。要求完成的主要任務(wù):(包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體要求)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ù)用數(shù)字式或指針式鐘表的形式顯示出來。4.獲取鍵盤的按鍵值,判斷鍵值并退出系統(tǒng)。5.撰寫課程設(shè)計(jì)說明書。內(nèi)容包括:摘要、目錄、正文、參考文獻(xiàn)、附錄(程序清單)。正文部分包括:設(shè)計(jì)任務(wù)及要求、方案比較及論證、軟件設(shè)計(jì)說明(軟件思想,流程,源程序設(shè)計(jì)及說明等)、程序調(diào)試說明和結(jié)果分析、課程設(shè)計(jì)收獲及心得體會。時(shí)間安排: 12月26日12月28日查閱資料及方案設(shè)計(jì)1月29日1月2日 編程1月3日1月7日 調(diào)試程序1月8日1月9日 撰寫課程設(shè)計(jì)報(bào)告指導(dǎo)教師簽名:年月日系主任(或責(zé)任教師)簽名:年月日目錄摘要 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ì)說明 124調(diào)試結(jié)果及分析 224.1程序初始運(yùn)行狀態(tài) 224.2日期顯示運(yùn)行結(jié)果 224.3計(jì)時(shí)功能運(yùn)行結(jié)果 235收獲與體會 25參考文獻(xiàn) 26附錄:設(shè)計(jì)源程序 27本科生課程設(shè)計(jì)成績評定表 36word文檔可自由復(fù)制編輯摘要本設(shè)計(jì)采用16位微型處理器8086CPU以及86系列微型計(jì)算機(jī)的指令系統(tǒng)利用匯編語言編寫,設(shè)計(jì)一個(gè)界面實(shí)現(xiàn)系統(tǒng)日期及時(shí)間顯示功能,軟件設(shè)計(jì)平臺為MasmforWindows集成實(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,則啟動(dòng)秒表功能;輸入Q,判斷鍵值后退出系統(tǒng);若不是相關(guān)字符,則不會有任何響應(yīng)。關(guān)鍵詞:系統(tǒng)時(shí)鐘8086CPU匯編語言

電子時(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)撰寫課程設(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)掌握8086CPU微機(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)目功能的軟件匯編語言代碼編寫。

2設(shè)計(jì)方案論述2.1設(shè)計(jì)方案概括在此次電子時(shí)鐘的設(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;INT21H的DOS中斷調(diào)用進(jìn)行系統(tǒng)時(shí)間的提取。提取的時(shí)間為二進(jìn)制的存儲模式,第二部分的重點(diǎn)為將二進(jìn)制數(shù)轉(zhuǎn)換成為ASCII碼。第三部分即為將轉(zhuǎn)換的時(shí)間的ASCII碼輸出至屏幕,調(diào)用AH=09H;INT21H中斷,將存儲的時(shí)間作為字符輸出。2.2.2顯示系統(tǒng)日期方案說明首先通過判斷是否有按鍵“D”輸入,若有則調(diào)用日期顯示功能,日期顯示同時(shí)間顯示基本相同,只是提取系統(tǒng)日期的指令與調(diào)用時(shí)間不同,為AH=2AH;INT21H。在進(jìn)行日期顯示的功能中,若有按鍵“L”則退出此功能。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í)器清零。

3軟件設(shè)計(jì)說明3.1理論知識介紹3.1.1DOS中斷與BIOS中斷的功能及調(diào)用(1)DOS中斷類型如表3-1所示。表3-1DOS中斷類型中斷號中斷名稱中斷號中斷名稱20程序終止27結(jié)束并駐留內(nèi)存21功能調(diào)用28鍵盤忙循環(huán)22終止地址29快速寫字符23Ctrl_C中斷向量2A網(wǎng)絡(luò)接口24嚴(yán)重錯(cuò)誤向量2E執(zhí)行命令25絕對磁盤讀2F多路轉(zhuǎn)接接口26絕對磁盤寫30-3F保留給DOS(2)BIOS中斷類型如表3-2所示。表3-2BIOS中斷類型中斷號中斷名稱中斷號中斷名稱10顯示器I/O16鍵盤I/O11取設(shè)備信息17打印機(jī)I/O12取內(nèi)存容量18ROMBASIC13磁盤I/O19引導(dǎo)裝入程序14RS-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è)基本步驟:1)將調(diào)用參數(shù)裝入指定的寄存器中;2)如需功能號,把它裝入AH;3)如需子功能號,把它裝入AL;4)按中斷號調(diào)用DOS或BIOS中斷;5)檢查返回參數(shù)是否正確。本例中需要的BIOS中斷如表3所示。表3本課程設(shè)計(jì)所需BIOS中斷類型INTAH功能入口參數(shù)出口參數(shù)1009H表示在當(dāng)前的光標(biāo)處按指令屬性顯示字符AH=09HAL=字符BH=顯示頁碼BL=屬性CX=重復(fù)輸出字符的次數(shù)無1002H用文本坐標(biāo)下設(shè)置光標(biāo)位置AH=02HBH=顯示頁碼DH=行(Y坐標(biāo))DL=列(X坐標(biāo))無2101H從鍵盤輸入一個(gè)字符無AL=ASCII2102H在屏幕上顯示一個(gè)字符DL=ASCII無1601H讀取鍵盤狀態(tài),即讀入輸入字符AH=01H—檢查普通鍵盤ZF=1——無字符輸入,否則,AH=鍵盤的掃描碼,AL=按鍵的ASCII碼(字符鍵)或者0(其他鍵)1600H從鍵盤讀入字符AH=00H—強(qiáng)制讀普通鍵盤AH=鍵盤的掃描碼AL=按鍵的ASCII碼(字符鍵)或者0(其他鍵)1008H讀光標(biāo)處的字符及其屬性AH=08HBH=顯示頁碼AH=屬性AL=字符2106H1號2號功能的組合DL=0FFH時(shí)為1號功能;DL寄存器放入字符的ASCII值時(shí)就是2號功能無或AL=ASCII1A02H讀取時(shí)間AH=02HCH=BCD碼格式的小時(shí);CL=BCD碼格式的分鐘;DH=BCD碼格式的秒;DL=00H——標(biāo)準(zhǔn)時(shí)間,否則,夏令時(shí);CF=0——時(shí)鐘在走,否則,時(shí)鐘停止3.1.2子程序的設(shè)計(jì)子程序又稱為過程,它相當(dāng)于高級語言中的過程和函數(shù)。在一個(gè)程序的不同部分,往往要用到類似的程序段,這些程序段的功能和結(jié)構(gòu)形式都相同,只是某些變量的賦值不同,此時(shí)就可以把這些程序段寫成子程序形式,以便需要時(shí)可以調(diào)用它。過程定義偽操作用在過程(子程序)的前后,使整個(gè)過程形成清晰的、具有特定功能的代碼塊。其格式為:procedurenamePROCAttribute…procedurenameENDP其中過程名為標(biāo)識符,它又是子程序入口的符號地址。它的寫法和標(biāo)號的寫法相同。屬性(attribute)是指類型屬性,它可以是NEAR或FAR。段內(nèi)調(diào)用使用NEAR屬性,段間調(diào)用使用FAR屬性。為了使用戶的工作更加方便,80x86的匯編程序用PROC偽操作的類型屬性來確定CALL和RET指令的屬性。也就是說,如果所定義的過程是FAR屬性的,那么對它的調(diào)用和返回一定都是FAR屬性的;如果所定義的過程是NEAR屬性的,那么對它的調(diào)用和返回也一定是NEAR屬性的。這樣,用戶只需在定義過程時(shí)考慮它的屬性,而CALL和RET的屬性可以由匯編程序來確定。用戶對過程屬性的確定原則很簡單,即:(1)如調(diào)用程序和過程在同一個(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。另外,中斷向量在中斷向量表中的位置就是中斷向量地址,它與中斷類型碼之間的關(guān)系可以表示如下:中斷向量地址=0000H:中斷類型碼*4CPU在響應(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é)束字符號’$’。調(diào)用DOS字符串顯示功能將時(shí)間顯示出來。并調(diào)用屏幕I/O中斷,定位光標(biāo)的開始位置,結(jié)合著將時(shí)間顯示在我們預(yù)先定義好的位置上。由于獲取了的系統(tǒng)時(shí)間不會自動(dòng)刷新,所以我們要設(shè)計(jì)成刷新的方式來不斷獲取系統(tǒng)的時(shí)間,這樣就形成了會跳動(dòng)的電子鐘了。時(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按鍵。選擇的某個(gè)功能推出后才可以重新選擇功能。程序的最后還設(shè)計(jì)一了個(gè)按“Q”鍵就退出的功能。所有的按鍵都采取了判斷鍵值A(chǔ)SCII碼確定輸入字符的方法確定按鍵值。為了顯示的美觀,還設(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í)間并顯示,如果有按鍵按下,判斷按鍵字符,若為“D”,執(zhí)行讀取日期子程序;若為“H”,執(zhí)行計(jì)時(shí)器子程序;若為“Q”,則退出程序;如果均不為上述字符,則返回調(diào)用系統(tǒng)時(shí)間。開始判斷按鍵是否為H判斷按鍵是否為開始判斷按鍵是否為H判斷按鍵是否為D判斷是否有鍵盤按鍵輸入讀取按鍵字符調(diào)用系統(tǒng)時(shí)間輸出至屏幕顯示設(shè)置屏幕顯示進(jìn)入計(jì)時(shí)器子程序進(jìn)入顯示日期子程序是是否否否是圖3-1系統(tǒng)主程序流程圖判斷按鍵是否為Q結(jié)束是否3.3.2顯示日期子流程圖及說明日期顯示子程序流程圖如圖3-2所示。開始開始提取系統(tǒng)日期將年份數(shù)轉(zhuǎn)為ASCII碼并存入DATEDIS中將日期數(shù)轉(zhuǎn)為ASCII碼并存入DATEDIS中將分月份轉(zhuǎn)為ASCII碼并存入DATEDIS中顯示系統(tǒng)日期返回圖3-2日期顯示子程序流程圖根據(jù)圖3-2所示的子流程圖可以分到系統(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)的指定位置。3.3.3計(jì)時(shí)器的流程圖及說明計(jì)時(shí)器子程序流程圖如圖3-3所示。開始開始讀取鍵盤值讀取鍵盤值讀取鍵盤值判斷有無按鍵按下按鍵為S按鍵為T按鍵為G按鍵為P按鍵為L按鍵為C開始計(jì)時(shí)停止計(jì)時(shí)判斷有無按鍵按下判斷有無按鍵按下退出子程序計(jì)數(shù)器清零是否是否否否是是是否否是是否是否否是圖3-3計(jì)時(shí)器子程序流程圖根據(jù)計(jì)時(shí)器子程序的流程圖可知,進(jìn)入計(jì)時(shí)器程序后,首先是等待計(jì)時(shí)開始,掃面鍵盤是否有按鍵按下,若按下“L”則推出此計(jì)時(shí)程序,若按下的為“S”則計(jì)時(shí)開始,在計(jì)時(shí)的過程中進(jìn)行按鍵掃描,判斷有無按鍵的輸入,如果沒有則保持計(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í)間顯示子程序流程圖3.4程序設(shè)計(jì)說明3.4.1清屏程序介紹CLEAR_SCREENMACROOP1,OP2,OP3,OP4;清屏 PUSHAX;入棧保護(hù)現(xiàn)場PUSHBXPUSHCXPUSHDX MOVAH,06H;向上滾屏 MOVAL,00H;全屏幕為空白 MOVBH,79H;空白區(qū)域缺省屬性 MOVCH,OP1;左上角行號 MOVCL,OP2;左上角列號 MOVDH,OP3;右下角行號 MOVDL,OP4;右下角列號 INT10H;BIOS對屏幕及顯示器中斷調(diào)用 POPDX;出棧顯示數(shù)據(jù)POPCXPOPBXPOPAX ENDM此為宏定義寫出的清屏指令,首先將寄存器的數(shù)據(jù)壓入堆棧進(jìn)行保護(hù),然后調(diào)用INT10中斷設(shè)定屏幕顯示。其中AH設(shè)置滾屏方式06為向上滾屏,AL=0為設(shè)置窗口的清屏,而CH、CL、DH、DL為設(shè)置窗口的大小,根據(jù)設(shè)定的窗口大小確定清屏的范圍。清屏結(jié)束后,將壓入堆棧的寄存器的數(shù)據(jù)彈出,使清屏命令不會影響寄存器的數(shù)值。3.4.2光標(biāo)定位程序介紹CURSOR_POSITIONMACROROW,CLM;設(shè)置光標(biāo)位置宏定義PUSHAX;入棧保護(hù)現(xiàn)場PUSHBXPUSHCXPUSHDX MOVAH,2MOVBH,0;光標(biāo)頁號MOVDH,ROW;光標(biāo)行號MOVDL,CLM;光標(biāo)列號INT10H;BIOS對屏幕及顯示器中斷調(diào)用 MOVAH,1;置光標(biāo)類型,不顯示光標(biāo) MOVCH,20H INT10HPOPDX;出棧顯示數(shù)據(jù)POPCXPOPBXPOPAX ENDM此宏定義為光標(biāo)位置的設(shè)定,首先是寄存器數(shù)據(jù)壓入堆棧保護(hù)。光標(biāo)設(shè)定需要調(diào)用INT10H,給AH賦值02H,執(zhí)行設(shè)置光標(biāo)位置命令,然后由DH、DL的數(shù)值確定光標(biāo)的行號和列號。由于根據(jù)設(shè)計(jì)需求,在此還需設(shè)置光標(biāo)屬性為隱藏,此功能同樣為調(diào)用INT10H,使得AH賦值為01H,根據(jù)CH的值確定光標(biāo)的屬性。最后為寄存器數(shù)據(jù)出棧。3.4.3多字符顯示程序介紹SHOWMACROB ;宏定義顯示寄存器中內(nèi)容 LEADX,B ;將b的首地址給DX MOVAH,9 ;顯示器I/O,多字符輸出 INT21H ;DOS中斷調(diào)用 ENDM此處宏定義為多字符的屏幕顯示,首先是將需要顯示的字符的存儲區(qū)的便宜地址給DX,然后通過功能調(diào)用AH=09H;INT21H,便可將多個(gè)字符輸出至屏幕。3.4.4讀取鍵盤狀態(tài)程序介紹SCANKEYMACRO PUSHAX MOVAH,01H INT16H POPAX ENDM此處宏定義為讀取鍵盤狀態(tài),通過功能調(diào)用AH=01H;INT21H即可實(shí)現(xiàn),如有按鍵按下,則ZF=1,若無,則ZF=0。3.4.5讀取鍵盤值程序介紹INPKEYMACRO PUSHAX MOVAH,00H INT16H MOVBL,AL POPAX ENDM此處宏定義為讀取鍵盤函數(shù)值,通過功能調(diào)用AH=00H;INT21H實(shí)現(xiàn),此命令會將鍵盤按鍵的ASCII碼值輸入至AL寄存器中。3.4.6調(diào)用系統(tǒng)時(shí)間顯示程序介紹TIMEDISPLAYPROCNEAR;定義時(shí)間顯示子程序 MOVAH,2CH;取當(dāng)前系統(tǒng)時(shí)間 INT21H MOVBX,10 LEADI,TIMEDIS;TIMEDIS的首地址給DI MOVAL,CH;小時(shí)傳遞給AL XORAH,AH;AH清零 DIVBL;小時(shí)的十位為AH,個(gè)位為AL ADDAX,3030H;轉(zhuǎn)為ASCII碼 MOV[DI+1],AX;將小時(shí)存入[DI+1] MOVAL,CL;將分鐘傳遞給AL XORAH,AH;AH清零 DIVBL;分鐘的高位為AH,低位為AL ADDAX,3030H;轉(zhuǎn)為ASCII碼 MOV[DI+6],AX;將分鐘存入[DI+6] MOVAL,DH;將秒傳遞給AL XORAH,AH;AH清零 DIVBL;秒的高位存入AH,低位存入AL ADDAX,3030H;轉(zhuǎn)換ASCII碼 MOV[DI+11],AX;將秒存入[DI+11] CURSOR_POSITION8,21H SHOWTIMEDIS;顯示TIMEDIS中內(nèi)容系統(tǒng)時(shí)間 RET;時(shí)間調(diào)用返回 TIMEDISPLAYENDP此處子程序?yàn)檎{(diào)用系統(tǒng)時(shí)間,然后到屏幕輸出,系統(tǒng)時(shí)間的調(diào)用采用DOS功能調(diào)用,AH=2CH;INT21H,調(diào)用后的系統(tǒng)時(shí)間,將小時(shí)的二進(jìn)制碼保存在CH寄存器中,分鐘的二進(jìn)制碼存入CL寄存器中,秒數(shù)的二進(jìn)制碼存入DH寄存器中,然后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)日期顯示程序介紹DATEDISPLAYPROCNEAR;定義日期顯示子程序 MOVAH,2AH;取當(dāng)前系統(tǒng)日期 INT21H MOVAX,CX;送年份入AX(二進(jìn)制數(shù)) MOVBX,10;(BX)=10 LEASI,DATEDIS+14;使SI指向年的最后一位 MOVCX,4;(CX)=4 PUSHDX;保存月日TAB:XORDX,DX;DX清零 DIVBX;(DX,AX)/BX,商送AX,余數(shù)送DX() ADDDL,30H;余數(shù)與30H相加變?yōu)樽址腁SCII碼 MOV[SI],DL;余數(shù)送入SI所指向的字節(jié)區(qū) DECSI;SI減一 LOOPTAB ;循環(huán)(將4個(gè)8字節(jié)的年份存入SI) POPDX;DX還原 MOVAL,DL;日送AL XORAH,AH;AH清零 DIVBL;AX/BL,商送AH,余數(shù)送AL ADDAX,3030H;轉(zhuǎn)變?yōu)閿?shù)字字符的ASCII碼 SUBSI,4;使SI指向日的第一位 MOV[SI],AX;(AX)送SI所指向的字節(jié)區(qū)(將4位表示變?yōu)?位表示) MOVAL,DH;月送AL XORAH,AH;AH清零 DIVBL;AX/BL,商送AH,余數(shù)送AL ADDAX,3030H;轉(zhuǎn)變?yōu)閿?shù)字字符的ASCII碼 SUBSI,5;使SI指向月的第一位 MOV[SI],AX;(AX)送SI所指向的字節(jié)區(qū) CURSOR_POSITION10H,28H SHOWDATEDIS;顯示日期 CURSOR_POSITION10H,10H SHOWmess3 RET;調(diào)用后返回DATEDISPLAYENDP此處子程序?yàn)檎{(diào)用系統(tǒng)日期,然后到屏幕輸出,系統(tǒng)時(shí)間的調(diào)用采用DOS功能調(diào)用,AH=2AH;INT21H,調(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í)器程序介紹CHRONOGRAPHPROCNEAR CURSOR_POSITION10H,14H SHOWmess4 CURSOR_POSITION10H,28H SHOWmess5CHPH: CALLTIMEDISPLAYSCANKEY CALLDELAY_1 JECLEAR INPKEY CMPBL,53H JESTAT JMPCLEARSTAT: CALLTIMEDISPLAY CALLTIME SCANKEY JESTAT INPKEY CMPBL,50H JEPAUSE CMPBL,54H JEPAUSE JMPSTATPAUSE: CALLTIMEDISPLAY SCANKEY JEPAUSE INPKEY CMPBL,47H JESTAT CMPBL,43H JECLEAR CALLTIMEDISPLAY JMPPAUSECLEAR:CALLTIMEDISPLAY MOVCOUNT1,0 MOVCOUNT2,0 MOVCOUNT3,0 RET CHRONOGRAPHENDP計(jì)時(shí)器子程序首先顯示提示界面,通過按鍵的判斷執(zhí)行不同的功能選擇,主要通過提取鍵盤值,然后進(jìn)行程序的跳轉(zhuǎn)完成。3.4.9將二進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼程序介紹CHANGEPROCNEARMOVCX,10D;顯示十位CALLDECDIVMOVCX,1;顯示個(gè)位CALLDECDIVRETCHANGEENDPDECDIVPROCNEAR;轉(zhuǎn)化成字符顯示MOVDX,0DIVCXMOVBX,0ADDAL,30H;轉(zhuǎn)換成ASCIIMOVAH,0EHINT10H;顯示一個(gè)字符MOVAX,DXRETDECDIVENDP以上程序完成的為進(jìn)制轉(zhuǎn)換,首先將二進(jìn)制數(shù)除以10將商和余數(shù)分別保存,轉(zhuǎn)換為BCD碼,分十位、個(gè)位分別操作,分別加上30H調(diào)整為ASCII碼。3.4.10計(jì)時(shí)程序介紹TIME PROC PUSHAX PUSHDXMAIN: MOVAH,2 INT1AH CMPDH,SECOND JNEGET JMPNEXTGET: MOVSECOND,DH INCCOUNT1 MOVAX,COUNT1 CMPAX,32H JNENEXT4 MOVCOUNT1,0 INCCOUNT2 MOVAX,COUNT2 CMPAX,32H JNENEXT4 MOVCOUNT2,0 INCCOUNT3NEXT4: CURSOR_POSITION10H,28H MOVAX,COUNT3 CALLCHANGE MOVAH,2 MOVDL,':' INT21H CURSOR_POSITION10H,2BH MOVAX,COUNT2 CALLCHANGE MOVAH,2 MOVDL,':' INT21H CURSOR_POSITION10H,2EH MOVAX,COUNT1 CALLCHANGENEXT: POPDX POPAX RETTIME ENDP此程序?yàn)橛?jì)時(shí)器的主體程序,通過功能調(diào)用AH=2;INT1AH,得到系統(tǒng)時(shí)間,并且得到系統(tǒng)現(xiàn)在的秒數(shù),保存至DH寄存器中,首先將SECOND賦值為0,然后和提取的秒對比,若相等,則輸出此時(shí)的計(jì)時(shí)的小時(shí)、分鐘、秒,若不想等,秒加一,且將DH的值賦給SECOND,在此輸出,同時(shí)考慮分鐘的最大值,若到達(dá)60,則將分鐘值加一,秒數(shù)清零,輸出,若分鐘數(shù)達(dá)到60,則將小時(shí)數(shù)加一,分鐘數(shù)清零輸出。

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é)果在程序初始界面的前提下,按下鍵盤“D”,則進(jìn)入日期顯示功能,其日期顯示界面如圖4-2所示。在此界面下,會輸出系統(tǒng)的當(dāng)前日期,只有當(dāng)按下鍵盤“L”后,退出此功能,且回到程序初始界面。圖4-2日期顯示界面4.3計(jì)時(shí)功能運(yùn)行結(jié)果在程序初始界面的前提下,按下鍵盤“H”,則進(jìn)入計(jì)時(shí)功能,計(jì)時(shí)功能界面如圖4-3所示。圖4-3計(jì)時(shí)功能界面此界面顯示程序進(jìn)入計(jì)時(shí)器功能,程序準(zhǔn)備好計(jì)時(shí),此事按下鍵盤“S”,計(jì)時(shí)開始,計(jì)時(shí)時(shí)間開始運(yùn)行,得到的計(jì)時(shí)功能開始后界面如圖4-4所示。圖4-4計(jì)時(shí)功能開始后界面在此界面中,顯示已經(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)。

5收獲與體會微機(jī)原理與接口技術(shù)是一門很有趣的課程,任何一個(gè)計(jì)算機(jī)系統(tǒng)都是一個(gè)復(fù)雜的整體,學(xué)習(xí)計(jì)算機(jī)原理是要涉及到整體的每一部分。討論某一部分原理時(shí)又要涉及到其它部分的工作原理。這樣一來,不僅不能在短時(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)定位,然后輸出到屏幕顯示。由于時(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í)要對照書本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)幫助。

參考文獻(xiàn)姚燕南,薛均義主編.微型計(jì)算機(jī)原理與接口技術(shù).高等教育出版社,2004李群芳,張士軍,黃建編著.單片機(jī)微型計(jì)算機(jī)與接口技術(shù).電子工業(yè)出版社,2005薛均義主編.微型計(jì)算機(jī)原理及應(yīng)用(Intel80X86系列).機(jī)械工業(yè)出版,2002黃明,梁旭,常征著.匯編語言程序設(shè)計(jì)習(xí)題詳解.北京:機(jī)械工業(yè)出版社,2004王永山,楊宏五,楊嬋娟著.微型計(jì)算機(jī)原理與應(yīng)用(第二版).西安:西安電子科技大學(xué)出版社,2006溫冬蟬,沈美明.IBMPC匯編語言程序設(shè)計(jì)(第2版).北京:清華大學(xué)出版社,2002姚燕南,薛均義主編.微型計(jì)算機(jī)原理與接口技術(shù).北京:高等教育出版社,2004

附錄:設(shè)計(jì)源程序;name:ELECTRONICCLOCK;designbybaixiaomeng,dianqi1107;*****************************清屏*******************************CLEAR_SCREENMACROOP1,OP2,OP3,OP4;清屏 PUSHAX;入棧保護(hù)現(xiàn)場PUSHBXPUSHCXPUSHDX MOVAH,06H;向上滾屏 MOVAL,00H;全屏幕為空白 MOVBH,79H;空白區(qū)域缺省屬性 MOVCH,OP1;左上角行號 MOVCL,OP2;左上角列號 MOVDH,OP3;右下角行號 MOVDL,OP4;右下角列號 INT10H;BIOS對屏幕及顯示器中斷調(diào)用 POPDX;出棧顯示數(shù)據(jù)POPCXPOPBXPOPAX ENDM;******************************光標(biāo)定位******************************* CURSOR_POSITIONMACROROW,CLM;設(shè)置光標(biāo)位置宏定義PUSHAX;入棧保護(hù)現(xiàn)場PUSHBXPUSHCXPUSHDX MOVAH,2MOVBH,0;光標(biāo)頁號MOVDH,ROW;光標(biāo)行號MOVDL,CLM;光標(biāo)列號INT10H;BIOS對屏幕及顯示器中斷調(diào)用 MOVAH,1;置光標(biāo)類型,不顯示光標(biāo) MOVCH,20H INT10HPOPDX;出棧顯示數(shù)據(jù)POPCXPOPBXPOPAX ENDM;**********************************字符顯示***************************** SHOWMACROB ;宏定義顯示寄存器中內(nèi)容 LEADX,B ;將b的首地址給DX MOVAH,9 ;顯示器I/O,多字符輸出 INT21H ;DOS中斷調(diào)用 ENDM ;**************************從鍵盤輸入一個(gè)字符************************INPUTMACROPUSHAXMOVAH,1 INT21H MOVBL,AL POPAX ENDM;********************************讀取鍵盤狀態(tài)***************************SCANKEYMACRO PUSHAX MOVAH,01H INT16H POPAX ENDM ;**********************************讀取鍵盤值***************************INPKEYMACRO PUSHAX MOVAH,00H INT16H MOVBL,AL POPAX ENDM;*******************************定義數(shù)據(jù)段******************************DATASEGMENTmess1db'Welcometomybeautiful!','$',0ah,0dhmess2db'',0ah,0dh db'+~~~(*^__^*)~~~+',0ah,0dh db'++',0ah,0dh db'+ELECTRONICCLOCK+',0ah,0dh db'+baixiaomeng+',0ah,0dh db'+Thetimeisnow:+',0ah,0dhdb'++',0ah,0dh db'++',0ah,0dh db'+AdditionalFunction:+',0ah,0dh db'+1.ShowDateTimeOpen:DClose:L+',0ah,0dh db'+2.ChronographOpen:HClose:L+',0ah,0dh db'+Start:SPause:PContinue:GStop:TClear:C+',0ah,0dh db'++',0ah,0dh db'++',0ah,0dh db'++',0ah,0dh db'+PressQbuttontoquit+',0ah,0dh db'+****************************************************+','$' mess3db'TheDateTimeisnow:',0ah,0dh,'$' mess4db'ThePastTimeis:',0ah,0dh,'$' mess5db'00:00:00',0ah,0dh,'$'mess6db'ZhengDianBaoShi',0ah,0dh,'$' D_BUF1db20DUP(?);在數(shù)據(jù)段開辟一時(shí)間顯示緩沖區(qū) D_BUF2db20DUP(?)SECONDDB0 COUNT1DW0 ;秒COUNT2DW0 ;分COUNT3DW0 ;時(shí) DATEDISDB'00-00-0000',0AH,'$';顯示DATE TIMEDISDB'00',3AH,'00',3AH,'00',0AH,'$' DATAENDS;*********************************定義堆棧段****************************STACKSEGMENTdb100dup(?)STACKENDS;***********************************定義指令段**************************CODESEGMENTASSUMEcs:code,ss:stack,ds:dataSTART: MOVAH,0;設(shè)置顯示模式 MOVAL,3 ;文字分辨率80*25顏色16 INT10H;BIOS對屏幕及顯示器中斷調(diào)用 CLEAR_SCREEN00H,00H,50H,50H;調(diào)用宏定義設(shè)置區(qū)域 MOVAX,DATA;數(shù)據(jù)段首地址給AX MOVDS,AX;數(shù)據(jù)段首地址給DS MOVAX,STACK;堆棧段首地址給AX MOVSS,AX;堆棧段首地址給SS CURSOR_POSITION1,1 SHOWmess1 CURSOR_POSITION2,1 SHOWmess2LOOP1: CALLTIMEDISPLAY SCANKEY JELOOP1 INPKEY CMPBL,57H JEZDTM CMPBL,44H JEDATE CMPBL,48H JECHRO CMPBL,51H JEQUIT JMPLOOP1DATE:CALLDATEDISPLAYCALLTIMEDISPLAYSCANKEY JEDATE INPKEY CMPBL,4CH JNEDATE CLEAR_SCREEN0FH,0FH,10H,37H CURSOR_POSITION0EH,15JMPLOOP1CHRO: CALLCHRONOGRAPHCALLTIMEDISPLAYSCANKEY JECHRO INPKEY CMPBL,4CH JNECHRO CLEAR_SCREEN0FH,0FH,10H,37H CURSOR_POSITION0EH,15JMPLOOP1`ZDTM:CURSOR_POSITION10H,1DHSHOWmess6 CALLTIMEDISPLAYSCANKEY JEZDTM INPKEY CMPBL,4CH JNEZDTM CLEAR_SCREEN0FH,0FH,10H,37HJMPLOOP1QUIT:CURSOR_POSITION14H,1HMOVAH,4CHINT21H ;***********************秒表子程序***************************CHRONOGRAPHPROCNEAR CURSOR_POSITION10H,14H SHOWmess4 CURSOR_POSITION10H,28H SHOWmess5CHPH: CALLTIMEDISPLAYSCANKEY CALLDELAY_1 JECLEAR INPKEY CMPBL,53H JESTAT JMPCLEARSTAT: CALLTIMEDISPLAY CALLTIME SCANKEY JESTAT INPKEY CMPBL,50H JEPAUSE CMPBL,54H JEPAUSE JMPSTATPAUSE: CALLTIMEDISPLAY SCANKEY JEPAUSE INPKEY CMPBL,47H JESTAT CMPBL,43H JECLEAR CALLTIMEDISPLAY JMPPAUSECLEAR:CALLTIMEDISPLAY MOVCOUNT1,0 MOVCOUNT2,0 MOVCOUNT3,0 RET CHRONOGRAPHENDP ;***********************時(shí)間顯示子程序***********************TIMEDISPLAYPROCNEAR;定義時(shí)間顯示子程序 MOVAH,2CH;取當(dāng)前系統(tǒng)時(shí)間 INT21H MOVBX,10 LEADI,TIMEDIS;TIMEDIS的首地址給DI MOVAL,CH;小時(shí)傳遞給AL XORAH,AH;AH清零 DIVBL;小時(shí)的十位為AH,個(gè)位為AL ADDAX,3030H;轉(zhuǎn)為ASCII碼 MOV[DI+1],AX;將小時(shí)存入[DI+1] MOVAL,CL;將分鐘傳遞給AL XORAH,AH;AH清零 DIVBL;分鐘的高位為AH,低位為AL ADDAX,3030H;轉(zhuǎn)為ASCII碼 MOV[DI+6],AX;將分鐘存入[DI+6] MOVAL,DH;將秒傳遞給AL XORAH,AH;AH清零 DIVBL;秒的高位存入AH,低位存入AL ADDAX,3030H;轉(zhuǎn)換ASCII碼 MOV[DI+11],AX;將秒存入[DI+11] CURSOR_POSITION8,21H SHOWTIMEDIS;顯示TIMEDIS中內(nèi)容系統(tǒng)時(shí)間 RET;時(shí)間調(diào)用返回 TIMEDISPLAYENDP;************************延遲時(shí)間子程序****************************DELAY PROC PUSHCX MOVCX,0FFFHNEXT_D:NOP LOOPNEXT_D POPCX RETDELAY ENDP;*************************短延時(shí)**********************************DELAY_1 PROC PUSHCX MOVCX,00FFHNEXT_D1:NOP LOOPNEXT_D1 POPCX RETDELAY_1 ENDP;****************************日期顯示子程序*****

溫馨提示

  • 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

提交評論