微機(jī)原理課程設(shè)計(jì)程序開發(fā)中對(duì)系統(tǒng)時(shí)間的顯示_第1頁
微機(jī)原理課程設(shè)計(jì)程序開發(fā)中對(duì)系統(tǒng)時(shí)間的顯示_第2頁
微機(jī)原理課程設(shè)計(jì)程序開發(fā)中對(duì)系統(tǒng)時(shí)間的顯示_第3頁
微機(jī)原理課程設(shè)計(jì)程序開發(fā)中對(duì)系統(tǒng)時(shí)間的顯示_第4頁
微機(jī)原理課程設(shè)計(jì)程序開發(fā)中對(duì)系統(tǒng)時(shí)間的顯示_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目 錄一 概述3二 總體方案設(shè)計(jì)4三 詳細(xì)設(shè)計(jì)7四 程序的調(diào)試與運(yùn)行結(jié)果說明12五 課程設(shè)計(jì)總結(jié)14謝啟15附錄16參考文獻(xiàn)21一 概述1. 課程設(shè)計(jì)的目的(1)使學(xué)生能夠較全面地鞏固和應(yīng)用課堂中所學(xué)的基本理論和程序設(shè)計(jì)方法,能夠較熟練地完成匯編語言程序的設(shè)計(jì)和調(diào)試。(2)培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成匯編程序課題的能力。(3)培養(yǎng)學(xué)生勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來檢驗(yàn)理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。(4)提高學(xué)生對(duì)工作認(rèn)真負(fù)責(zé)、一絲不茍,對(duì)同學(xué)團(tuán)結(jié)友愛,協(xié)作攻關(guān)的基本素質(zhì)。(5)培養(yǎng)學(xué)生從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問題

2、的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。(6)對(duì)學(xué)生掌握知識(shí)的深度、運(yùn)用理論去處理問題的能力、實(shí)驗(yàn)?zāi)芰?、課程設(shè)計(jì)能力、書面及口頭表達(dá)能力進(jìn)行考核。2. 課程設(shè)計(jì)的要求要求完成一個(gè)顯示系統(tǒng)當(dāng)前日期和時(shí)間的程序,即通過按下鍵盤上某個(gè)按鍵就可以顯示系統(tǒng)的日期和時(shí)間或者終止程序。在出現(xiàn)的提示信息后輸入小寫字母“d”,顯示系統(tǒng)當(dāng)前日期;輸入小寫字母“t”,顯示系統(tǒng)當(dāng)前時(shí)間;輸入小寫字母“q”,結(jié)束程序。此程序涉及到對(duì)DOS和BIOS的常用功能的調(diào)用,要求學(xué)生掌握使用匯編語言對(duì)I/O中斷的使用。二 總體方案設(shè)計(jì)1. 程序總體流程圖如圖2-1。開始顯示提示信息接收鍵盤輸入是“q”?是“d”?是“t”?退

3、出程序是是是否否否調(diào)用DATE,顯示系統(tǒng)日期調(diào)用TIME,顯示系統(tǒng)時(shí)間圖2-1 程序總體流程圖2. 工作原理在DOS環(huán)境下完成,先利用BIOS功能調(diào)用中顯示器驅(qū)動(dòng)程序的00H類型調(diào)用,設(shè)置顯示器的顯示模式為80*25彩色。在屏幕中央顯示提示信息(提示用戶輸入“d”或“t”或“q”)。然后對(duì)用戶輸入的字母進(jìn)行判斷,利用分支程序分別調(diào)用不同的子程序。兩個(gè)子程序的功能分別是顯示當(dāng)前日期(用2AH的DOS功能調(diào)用來取日期),顯示當(dāng)前時(shí)間(用2CH的DOS功能調(diào)用來取時(shí)間)。 必須用到的DOS功能調(diào)用:取當(dāng)前系統(tǒng)日期:功能號(hào)為2AH,返回值送入CX,DX寄存器中。取當(dāng)前系統(tǒng)時(shí)間:功能號(hào)為2CH,返回值送

4、入CX,DX寄存器中。3. 部分程序設(shè)計(jì)及功能(1)文本顯示在顯示彩色文本時(shí),屬性字節(jié)能夠選擇前景(顯示的字節(jié))和背景的顏色;每個(gè)字符可以選擇16種顏色中的一種,背景有8種顏色可以選擇;在程序代碼中,我設(shè)置了顯示綠色,代碼部分如下:LOP: PUSH CX;MOV AL,DIADD AL,30HMOV BL,02H(2)時(shí)間日期轉(zhuǎn)化數(shù)制在定義堆棧寄存器,按循環(huán)要求讀取系統(tǒng)日期項(xiàng),由于讀取的日期項(xiàng)是二進(jìn)制代碼,因此需調(diào)用DIVNUM PROC子程序轉(zhuǎn)換為BCD碼,其中部分代碼如下:DIVNUM PROC NEARPUSH CXAGAIN: MOV BL,0AHDIV BLMOV DI,AHMOV

5、 AH,0INC DILOOP AGAINDEC DIPOP CXRETDIVNUM ENDP(3)光標(biāo)設(shè)置利用INT 10H的功能1是光標(biāo)顯現(xiàn)或者關(guān)閉,這個(gè)功能也控制光標(biāo)行的開始和結(jié)束,也就是控制光標(biāo)的大?。籌NT 10H的功能2設(shè)置光標(biāo)位置,光標(biāo)位置的行號(hào)設(shè)在DH寄存器中,列號(hào)設(shè)在DL中;BH中必須包含被輸出的頁號(hào),對(duì)單色顯示器來說,頁號(hào)總是0;INT 10H功能3是讀光標(biāo)位置,頁號(hào)也必須在BH中指定,此功能把光標(biāo)位置的行號(hào)回送給DH,列號(hào)回送給DL;程序中的代碼部分如下:MOV BH,0MOV CX,1MOV AH,9INT 10HMOV BH,0MOV AH,3INT 10HINC D

6、LMOV AH,2INT 10H三 詳細(xì)設(shè)計(jì)本程序通過調(diào)用不同的子程序來實(shí)現(xiàn)系統(tǒng)功能,以下為各主要子程序的詳細(xì)設(shè)計(jì)。1. 日期子程序系統(tǒng)通過條用時(shí)間子程序來實(shí)現(xiàn)獲取并顯示當(dāng)前時(shí)間的功能。此程序主要涉及三個(gè)重點(diǎn):(1)DOS和BIOS的常用功能的調(diào)用。(2)掌握使用匯編語言對(duì)I/O中斷的使用。(3)ACS碼與BCD碼數(shù)制上的轉(zhuǎn)化。子程序的程序流程圖如下,見圖3-1。 開 始獲取原中斷類型1CH 設(shè)置新的中斷類型 執(zhí)行中斷處理程序 保護(hù)現(xiàn)場(chǎng) 中斷返回 讀取系統(tǒng)時(shí)間 保存原中斷類型分別將時(shí)間的BCD碼轉(zhuǎn)換為字符在指定位置寫顯存以顯示日期恢復(fù)現(xiàn)場(chǎng)圖3-1 日期子程序的流程圖當(dāng)鍵盤輸入字母“D”時(shí)所調(diào)用

7、執(zhí)行的子程序;首先定義堆棧寄存器,按循環(huán)要求讀取系統(tǒng)日期項(xiàng),由于讀取的日期項(xiàng)是二進(jìn)制代碼,因此需調(diào)用DIVNUM PROC子程序轉(zhuǎn)換為BCD碼,然后接著調(diào)用LISNUM PROC予以顯示;執(zhí)行完DIVNUM PROC子程序后調(diào)用DIS1 PROC顯示一個(gè)分隔符”-”,完成一個(gè)日期項(xiàng)的顯示,然后再循環(huán)去讀取其他日期項(xiàng);最后返回主程序執(zhí)行主程序。子程序的關(guān)鍵代碼: MOV DX,OFFSET BUF2MOV AH,9INT 21HMOV AH,2AHINT 21HMOV YEAR,CXMOV MON,DHMOV DAY,DLMOV DI,OFFSET BUFMOV AX,YEARMOV CX,4C

8、ALL DIVNUMCALL LISNUMCALL DIS1MOV AL,MONMOV AH,0MOV CL,2CALL DIVNUMCALL LISNUMCALL DIS1MOV AL,DAYMOV AH,0MOV CL,2CALL DIVNUMCALL LISNUMCALL ENTERJMP START2. 時(shí)間子程序該時(shí)間子程序與日期子程序的主要功能以及主要實(shí)現(xiàn)方法都十分相識(shí),同樣涉及到匯編語言中DOS和BIOS的常用功能的調(diào)用,匯編語言對(duì)I/O中斷的使用以及ACS碼與BCD碼數(shù)制上的轉(zhuǎn)化。系統(tǒng)主程序通過調(diào)用該子程序?qū)崿F(xiàn)要求的功能。程序的流程圖如圖3-2。 開 始獲取原中斷類型1CH 保

9、存原中斷類型 設(shè)置新的中斷類型 執(zhí)行中斷處理程序 保護(hù)現(xiàn)場(chǎng) 中斷返回 讀取系統(tǒng)時(shí)間 保存原中斷類型分別將時(shí)間的BCD碼轉(zhuǎn)換為字符在指定位置寫顯存以顯示時(shí)間 恢復(fù)現(xiàn)場(chǎng)圖3-2 時(shí)間子程序流程圖當(dāng)鍵盤輸入字母“T”時(shí)所調(diào)用執(zhí)行的子程序;首先定義堆棧寄存器,按循環(huán)要求讀取系統(tǒng)時(shí)間項(xiàng),由于讀取的日期項(xiàng)是二進(jìn)制代碼,因此需調(diào)用DIVNUM PROC子程序轉(zhuǎn)換為BCD碼,然后調(diào)用LISNUM PROC予以顯示;執(zhí)行完DIVNUM PROC子程序后調(diào)用DIS2 PROC顯示一個(gè)分隔符”:”,完成一個(gè)日期項(xiàng)的顯示,然后再循環(huán)去讀取其他日期項(xiàng);最后返回主程序執(zhí)行主程序。其執(zhí)行過程與執(zhí)行日期子程序相似。子程序關(guān)鍵

10、代碼:MOV DX,OFFSET BUF3MOV AH,9INT 21HMOV AH,2CHINT 21HMOV HOUR,CHMOV MIN,CLMOV SEC,DHMOV DI,OFFSET BUFMOV AL,HOURMOV AH,0MOV CX,2CALL DIVNUMCALL LISNUMCALL DIS2MOV AL,MINMOV AH,0MOV CX,2CALL DIVNUMCALL LISNUMCALL DIS2MOV AL,SECMOV AH,0MOV CX,2CALL DIVNUMCALL LISNUMCALL ENTERJMP START 3. DIVNUM 子程序在定義

11、堆棧寄存器,按循環(huán)要求讀取系統(tǒng)日期和時(shí)間項(xiàng),由于讀取的日期項(xiàng)是二進(jìn)制代碼,因此需調(diào)用DIVNUM PROC子程序轉(zhuǎn)換為BCD碼。在系統(tǒng)運(yùn)行的過程中,通過時(shí)間子程序和日期子程序?qū)IVNUM 子程序的調(diào)用來實(shí)現(xiàn)ACS碼和BCD碼的數(shù)制轉(zhuǎn)化。4. LISNUM 子程序時(shí)間子程序和日期子程序?qū)ISNUM子程序的調(diào)用來實(shí)現(xiàn)顯示輸出日期或者時(shí)間的數(shù)字。5. DIS1子程序DIS1子程序在程序中用來將顯示的年月日用“-”隔開,如顯示“20100823”時(shí)加入分隔號(hào),即可顯示為“2010-08-23”。該子程序在顯示日期時(shí)調(diào)用即可。程序關(guān)鍵代碼:MOV DL,-MOV AH,2HINT 21HRET6 D

12、IS2子程序功能類似DIS1子程序,將顯示的小時(shí)分鐘秒鐘用“:”隔開,如顯示“214013”時(shí)加入分隔號(hào),即可顯示為“21:40:13”。該子程序在顯示時(shí)間時(shí)調(diào)用即可。程序相關(guān)代碼:MOV DL,:MOV AH,2HINT 21HRET7. ENTER子程序該子程序用來顯示輸出字符。程序關(guān)鍵代碼:PUSH DXPUSH AXMOV DL,0AHMOV AH,2HINT 21HMOV DL,0DHMOV AH,2HINT 21HPOP AXPOP DXRET8. EXIT子程序帶返回碼終止程序。四 程序的調(diào)試與運(yùn)行結(jié)果說明1. 調(diào)試程序:(1)編譯源文件,命名為shengsi.asm 。(2)采

13、用命令格式,masm shengsi.asm將生成一個(gè)OBJ文件,檢查源程序中的錯(cuò)誤,如有改正。(3)鍵入連接命令:link shengsi.obj,將會(huì)生成一個(gè)exe可執(zhí)行文件。(4)鍵入shengsi.exe回車,即可顯示結(jié)果。該過程見圖4-1。程序編譯成功程序連接成功圖4-1 程序調(diào)試過程2. 實(shí)驗(yàn)結(jié)果分析通過以上的結(jié)果顯示可以看出結(jié)果成功完成本次課程設(shè)計(jì)的目的和任務(wù),本次課程設(shè)計(jì)嚴(yán)格按照課程設(shè)計(jì)任務(wù)的要求:運(yùn)行可執(zhí)行程序shengsi.exe,在出現(xiàn)的提示信息中輸入大寫字母“D”,可顯示系統(tǒng)當(dāng)前日期;輸入大寫字母“T”,可顯示系統(tǒng)當(dāng)前時(shí)間;輸入大寫字母“Q”,可結(jié)束程序;若不是相關(guān)字符

14、,則從頭執(zhí)行程序。實(shí)現(xiàn)過程如圖4-2。運(yùn)行結(jié)果:顯示當(dāng)前時(shí)間和日期正確運(yùn)行程序圖4-2 程序顯示過程3. DEBUG調(diào)試在驗(yàn)證程序正確顯示后,為了分析各寄存器值的變化以及單步執(zhí)行指令,使用了DEBUG命令進(jìn)行調(diào)試。調(diào)試過程如圖4-3。DEBUG調(diào)試過程圖4-3 DEBUG調(diào)試過程五 課程設(shè)計(jì)總結(jié)這次匯編課程設(shè)計(jì)為我們提供了與眾不同的學(xué)習(xí)方法和學(xué)習(xí)機(jī)會(huì),讓我們從傳統(tǒng)的被動(dòng)授學(xué)轉(zhuǎn)變?yōu)橹鲃?dòng)求學(xué);從死記硬背的模式中脫離出來,轉(zhuǎn)變?yōu)樵趯?shí)踐中學(xué)習(xí),增強(qiáng)了領(lǐng)悟、創(chuàng)新和推斷的能力。掌握自學(xué)的方法,形成工程理論整體模式,使工作、學(xué)習(xí)、生活都步入系統(tǒng)化流程;思考方式成熟,邏輯性規(guī)范、明確。這些方法的提高是終身受益

15、的,我認(rèn)為這難得的一周,讓我真正懂得了生活和學(xué)習(xí)的基本規(guī)律。通過這次課程設(shè)計(jì),我們對(duì)匯編各個(gè)函數(shù)以及語句有了進(jìn)一步的了解,對(duì)各個(gè)語句的功能有了更深刻的認(rèn)識(shí)和體會(huì),平時(shí)上課的理論知識(shí)只是停留在理論的層面,只有通過了這樣的試驗(yàn)才能更好的體會(huì)到,做到了理論和實(shí)際的相結(jié)合,使理論知識(shí)真正運(yùn)用到了實(shí)踐中去。在課程設(shè)計(jì)過程中,同組人員之間相互合作,共同研究使我更加堅(jiān)信了團(tuán)體的力量。在團(tuán)體的共同協(xié)作和努力下,任何的難題都可以被解決。在這次課程設(shè)計(jì)中,對(duì)調(diào)用子程序、程序循環(huán)、DOS及BIOS功能調(diào)用等知識(shí)的理解更為加深,在運(yùn)用的時(shí)候更為熟悉了;還有在運(yùn)用堆棧的時(shí)候我總是出錯(cuò),但通過這次課程設(shè)計(jì),我對(duì)堆棧了解加

16、深了。緊張忙碌的課程設(shè)計(jì)雖然在歷經(jīng)一個(gè)周的時(shí)間后結(jié)束了,完成了課程設(shè)計(jì)的任務(wù),但是從中發(fā)現(xiàn)的問題也是值得去深思的。我想經(jīng)過這一個(gè)周的課程設(shè)計(jì)所發(fā)現(xiàn)的問題對(duì)我們會(huì)有很大的啟示,在以后的學(xué)習(xí)中也會(huì)大有幫助。在以后的學(xué)習(xí)中我會(huì)不斷的改進(jìn)學(xué)習(xí)方法,在實(shí)踐中學(xué)習(xí),不斷提高自我,完美自我,全面提高自己。在本次課程設(shè)計(jì)過程中,楊斐和姚莉等老師以及相關(guān)同學(xué)給予我相當(dāng)大的支持和幫助,在此表示誠(chéng)摯的感謝。謝啟這一次課題設(shè)計(jì)以及報(bào)告是在馬學(xué)軍、晏伯武、姚莉、楊斐四位老師精心指導(dǎo)和大力支持下完成的。在這次課題設(shè)計(jì)的過程中老師們以其嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度、高度的敬業(yè)精神、兢兢業(yè)業(yè)、孜孜以求的工作作風(fēng)和大膽創(chuàng)新的進(jìn)取精神對(duì)我

17、產(chǎn)生重要影響。他們淵博的知識(shí)、開闊的視野和敏銳的思維給了我深深的啟迪。同時(shí),在此次課程設(shè)計(jì)過程中 我也學(xué)到了許多了關(guān)于匯編語言方面的知識(shí),實(shí)驗(yàn)技能有了很大的提高。在課題設(shè)計(jì)和編寫論文的過程中,最初我遇到了不少的困難和難題,幾位老師不顧日常教學(xué)工作的辛苦,依然多次與我單獨(dú)討論問題,對(duì)我的思維進(jìn)行啟發(fā),并且鼓勵(lì)我從嚴(yán)要求,才使得我的匯編能力通過這次課題設(shè)計(jì)有了實(shí)質(zhì)性的提高。另外,我還要特別感謝06級(jí)學(xué)長(zhǎng)對(duì)我實(shí)驗(yàn)以及論文寫作的指導(dǎo)。幾位學(xué)長(zhǎng)本著嚴(yán)謹(jǐn)?shù)膽B(tài)度多次指出我論文中的錯(cuò)誤和需要提高的地方,并為我出謀劃策使我的這篇論文才有現(xiàn)在的水平。還要感謝,本次同組的劉宇、熊啟猛、彭瑞同學(xué)對(duì)我的無私幫助和關(guān)心。

18、小組四個(gè)人的多次討論和相互研究是這次課題成功的關(guān)鍵所在。通過與他們的合作讓我更加深刻的理解了團(tuán)隊(duì)合作的重要性,以及大學(xué)友誼的重要性。同樣三人行必有我?guī)煟谶@次設(shè)計(jì)過程中我從他們的身上我也學(xué)到了不少的優(yōu)點(diǎn)。最后,再次對(duì)關(guān)心、幫助我的老師和同學(xué)表示衷心地感謝。附錄以下為程序的主要代碼:/*定義堆棧段*/STACK SEGMENT STACKDW 200 DUP(?)/定義200個(gè)字的空間STACK ENDS/*定義數(shù)據(jù)段*/DATA SEGMENTYEAR DW ?/定義 年MON DB ?/定義 月DAY DB ?/定義 日HOUR DB ?/定義 小時(shí)MIN DB ?/定義 分鐘SEC DB

19、?/定義 秒鐘BUF DB 8 DUP(?)/定義 8字節(jié)緩存存放日期和時(shí)間數(shù)據(jù)BUF1 DB WELCOME TO THE SHOWTIME PROGRAM !PLEASE INPUT HERE(D FOR DATE,T FOR TIME,Q TO QUIT): $/顯示提示:鍵入D顯示日期,鍵入T顯示時(shí)間,鍵入Q退出程序BUF2 DB THE DATE OF TODAY IS : $BUF3 DB THE TIME RIGHT NOW IS: $BUF4 DB BYE!THANKYOU!$DATA ENDS/*以下皆為 定義代碼段*/CODE SEGMENTASSUME CS:CODE,D

20、S:DATA/*主程序*/START: MOV AX,DATAMOV DS,AXMOV BH,1;/設(shè)置頁號(hào)MOV DH,0/行號(hào)MOV DL,0/行號(hào)MOV AH,2/BIOS中斷10的2號(hào)功能調(diào)用INT 10H;/使用BIOS 的10H中斷的2號(hào)功能調(diào)用來置光標(biāo)位置MOV DX,OFFSET BUF1MOV AH,09H/顯示字符串INT 21HMOV AH,01HINT 21HCALL ENTER/調(diào)用回車和換行子程序CMP AL,44H/傳送D的ASCII碼值JZ DATE/判斷是否輸入字符“D”CMP AL,54H/傳送T的ASCII碼值JZ TIME/判斷是否輸入字符“T”CMP

21、AL,51H/傳送Q的ASCII碼值JZ GOON/判斷是否輸入字符“Q”JMP STARTGOON: JMP EXIT/如果輸入字符“Q”則退出/*日期函數(shù)*/DATE: MOV DX,OFFSET BUF2MOV AH,9INT 21HMOV AH,2AHINT 21H/系統(tǒng)調(diào)用,取系統(tǒng)時(shí)間MOV YEAR,CXMOV MON,DHMOV DAY,DLMOV DI,OFFSET BUFMOV AX,YEARMOV CX,4CALL DIVNUM/對(duì)年進(jìn)行數(shù)值轉(zhuǎn)換并存儲(chǔ)于八個(gè)緩存中等待輸出CALL LISNUM/輸出緩存中的數(shù),如“2010”CALL DIS1/顯示“-”將年和月分隔MOV

22、AL,MONMOV AH,0MOV CL,2CALL DIVNUM/對(duì)月進(jìn)行數(shù)值轉(zhuǎn)換并存儲(chǔ)于八個(gè)緩存中等待輸出CALL LISNUM/輸出緩存中的數(shù),如“6”CALL DIS1/顯示“-”將月和日分隔MOV AL,DAYMOV AH,0MOV CL,2CALL DIVNUM/對(duì)日進(jìn)行數(shù)值轉(zhuǎn)換并存儲(chǔ)于八個(gè)緩存中等待輸出CALL LISNUM/輸出緩存中的數(shù),如“12”CALL ENTERJMP START/*時(shí)間函數(shù)*/TIME: MOV DX,OFFSET BUF3MOV AH,9INT 21HMOV AH,2CHINT 21HMOV HOUR,CHMOV MIN,CLMOV SEC,DHMO

23、V DI,OFFSET BUFMOV AL,HOURMOV AH,0MOV CX,2CALL DIVNUM/對(duì)小時(shí)進(jìn)行數(shù)值轉(zhuǎn)換并存儲(chǔ)于緩存中等待輸出CALL LISNUM/輸出緩存中的小時(shí)數(shù)CALL DIS2/顯示“:”將小時(shí)和分鐘分隔MOV AL,MINMOV AH,0MOV CX,2CALL DIVNUM/對(duì)分鐘進(jìn)行數(shù)值轉(zhuǎn)換并存儲(chǔ)于緩存中等待輸出CALL LISNUM/輸出緩存中的分鐘時(shí)間CALL DIS2/顯示“:”將分鐘和秒鐘分隔MOV AL,SECMOV AH,0MOV CX,2CALL DIVNUM/對(duì)秒鐘進(jìn)行數(shù)值轉(zhuǎn)換并存儲(chǔ)于緩存中等待輸出CALL LISNUM/輸出緩存中的秒鐘時(shí)

24、間CALL ENTERJMP START /*帶返回碼終止程序*/ EXIT: MOV DX,OFFSET BUF4MOV AH,9INT 21HMOV BL,10;/ 存儲(chǔ)循環(huán)次數(shù)DELAY:MOV CX,33144CALL WAITF/調(diào)延時(shí)子程序,每次調(diào)用耗時(shí)33144*15.08us=0.5sDEC BLJNZ DELAY;/ 循環(huán)10次,則延時(shí)5sMOV AH,4CHINT 21H/*數(shù)制轉(zhuǎn)化函數(shù)*/DIVNUM PROC NEAR/將ACS碼轉(zhuǎn)化為BCD碼PUSH CXAGAIN: MOV BL,0AHDIV BLMOV DI,AH/取出值的十進(jìn)制的每一位MOV AH,0INC DILOOP AGAINDEC DIPOP CXRETDIVNUM ENDP/*顯示緩存中數(shù)值函數(shù)*/LISNUM PROC NEAR/按照一定的顯示特性將緩存中數(shù)值顯示出來LOP: ;MOV DL,DI;ADD DL,30H;MOV AH,2;INT 21HPUSH CX;MOV AL,DIADD AL,30HMOV BL,02HMOV BH,0MOV CX,1MOV AH,9INT 10H/顯示墨綠色字符MOV BH,0MOV AH,3INT 10H/取光標(biāo)屬性INC DLMOV AH,2INT 10H/置光標(biāo)屬性POP CX;DEC D

溫馨提示

  • 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. 人人文庫(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)論