2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  《微機原理與接口技術》課程設計</p><p>  題目: 顯示系統(tǒng)時間的程序</p><p>  學生姓名: </p><p>  學 號: </p><p>  院 系: 信息工程與科學學院

2、</p><p>  專 業(yè): 電氣自動化技術 </p><p>  指導教師: </p><p>  2015年12月23日 </p><p><b>  目 錄</b></p><p>  1 設計的目的要求

3、1</p><p>  1.1 設計目的1</p><p>  1.2 設計任務2</p><p>  1.3 具體要求2</p><p><b>  2任務原理分析2</b></p><p>  2.1任務總體分析2</p><p>  2.2子程序分析3&l

4、t;/p><p>  2.2.1 子程序13</p><p>  2.2.2 子程序24</p><p>  2.2.3 子程序37</p><p>  2.3 拓展設計及功能說明9</p><p>  2.4 程序設計的主流程圖9</p><p><b>  3 方案比較10

5、</b></p><p>  3.1 方案110</p><p>  3.1.1 原理說明10</p><p>  3.1.2 相關理論知識11</p><p>  3.1.3 方案1的流程圖12</p><p>  3.2 方案213</p><p>  3.2.1 原理

6、說明13</p><p>  4 程序的調試過程14</p><p>  5 調試過程中的問題16</p><p><b>  6 心得體會17</b></p><p><b>  參考文獻18</b></p><p><b>  附錄19</b&

7、gt;</p><p><b>  顯示系統(tǒng)時間的程序</b></p><p><b>  1 設計的目的要求</b></p><p><b>  1.1 設計目的</b></p><p>  1. 掌握中斷的使用方法。</p><p>  2. 掌握B

8、IOS系統(tǒng)功能調用。</p><p>  3. 掌握基本的顯存讀寫技術。</p><p>  4. 學會用匯編語言編寫一個較完整的實用程序, 培養(yǎng)自己的動手操作能力。</p><p>  5 . 學習程序設計的基本思路和方法,編程、調試、撰寫報告等。</p><p><b>  1.2 設計任務</b></p>

9、;<p>  采用匯編語言設計一個顯示系統(tǒng)時間程序,在屏幕上以“時:分:秒”的形式顯示本機系統(tǒng)的時間。按Q退出程序。</p><p><b>  1.3 具體要求</b></p><p><b>  設計任務及要求分析</b></p><p><b>  方案比較及認證說明</b><

10、;/p><p><b>  系統(tǒng)原理闡述</b></p><p>  軟件設計課題需要說明:軟件思想,流程圖,源程序及程序注釋</p><p><b>  調試記錄及結果分析</b></p><p><b>  總結</b></p><p><b>

11、;  參考資料</b></p><p>  附錄:芯片資料或程序清單,軟件演示屏幕拷貝圖或硬件實物圖</p><p><b>  2任務原理分析</b></p><p><b>  2.1任務總體分析</b></p><p>  本課設的設計任務要求在運行時,在屏幕上以“時:分:秒”的形

12、式顯示本機系統(tǒng)的時間,并且按Q退出程序。由此可知,首先定義光標顯示界面,然后調用BIOS中斷,讀取系統(tǒng)時間,并將調用的用二進制表示的時間數(shù)轉換成ASCII碼,并將時間數(shù)存入顯存區(qū),最后將存在系統(tǒng)內存區(qū)的時間用字符串的形式顯示出來。由于獲取了的系統(tǒng)時間不會自動刷新,所以我們要設計成循環(huán)的方式來不斷獲取系統(tǒng)的時間,這樣就形成了會跳動的電子鐘了。程序一旦進入運行,就將不間斷地在顯示屏顯示時間,要想程序停止運行,可輸入“Q”即可退出。如果用圖形

13、方式顯示效果會更好,而且需注意設置顯示時候的背景顏色。在本課程設計中,主要需要三個子程序來完成。</p><p><b>  2.2子程序分析</b></p><p><b>  2.2.1子程序1</b></p><p>  子程序1的功能就是設置光標位置。</p><p>  其基本原理是:在子

14、程序1中,我用到了顯示器驅動程序(INT 10H)中AH=2的功能。AH=2的功能是設置光標位置,入口參數(shù):(DH,DL)=行、列;BH=頁號(圖形模式為0)。</p><p>  為了使顯示的時間在DOS屏幕中的中間顯示,DX設置為0A24H,即DH=0AH,DL=24H,就是在0AH行,24H列。如果想改變時間顯示的位置,只要改變DX的數(shù)值就可以達到目的。由于在第零頁中定位,可用SUB BH,BH來完成此操作

15、。</p><p>  子程序1的源程序如下:</p><p>  MOV BX,005EH</p><p>  MOV AX,1301H</p><p>  INT 10H ;設置光標位置</p><p>  MOV AH,02H</p>

16、<p>  MOV DH,0AH</p><p>  MOV DL,24H ;dh顯示行(x坐標);dl顯示列(y坐標)</p><p>  MOV BH,0 ;頁碼為0</p><p>  INT 10H</p><p>  子程序1的流程圖如圖1所示。&

17、lt;/p><p>  圖1 子程序1的流程圖</p><p>  2.2.2 子程序2</p><p>  子程序2的功能是把二進制數(shù)轉換為十進制ASCII碼輸出。</p><p>  其基本原理是:首先要完成二進制到十進制數(shù)的轉換,一般采用“除10取余”法來完成,其大致過程如下:將待轉換的數(shù)(在AX中)除以10,得到第一個商和余數(shù),此第一個

18、余數(shù)就是所求的十進制數(shù)的個位;再用第一個商除以10,得到第二個商和余數(shù),此第二個余數(shù)就是所求十進制數(shù)的十位;……;重復這一過程直至商為0,此時的余數(shù)就是所求十進制數(shù)的最高位。</p><p>  在內存中分配一緩沖區(qū),用來存放以上分離出來的十進制數(shù)的每一位,然后再逐個轉換成ASCII碼,轉換成ASCII碼的過程很簡單,就是給每個十進制位加上30H即可;最后送顯示器輸出。從轉換的過程可以看出,先分離出來的是十進制數(shù)

19、的低位,要后顯示;后分離出來的是十進制數(shù)的高位,應該先顯示。因此在編程時,我們可以利用堆棧操作中“先進后出、后進先出”的特性,當分離出各十進制位時依次入棧,要逐個轉換成ASCII碼送顯示時依次出棧。 </p><p>  子程序2的流程圖如下:</p><p>  BIN10OUT PROC ;二進制轉十進制ASCUII碼輸出子程序 <

20、/p><p><b>  PUSH DI</b></p><p><b>  PUSH DX</b></p><p><b>  PUSH CX</b></p><p><b>  PUSH AX</b></p><p><b&g

21、t;  MOV CX,0</b></p><p>  LEA DI,TBUF ;去緩沖區(qū)首地址</p><p>  BIN1: PUSH CX</p><p><b>  MOV AX,DX</b></p><p><b>  MOV DX,0</b><

22、;/p><p><b>  MOV CX,10</b></p><p>  DIV CX ;AX內容除以DX內容,商在AX,余數(shù)在DX</p><p>  XCHG AX,DX ;交換AX,DX的內容</p><p>  ADD AL,30H

23、 ;余數(shù)加30H,入棧準備輸出</p><p>  MOV [DI],AL</p><p><b>  INC DI</b></p><p><b>  POP CX</b></p><p>  INC CX ;累加每調用一次要輸出的位數(shù)</

24、p><p>  CMP DX,0 ;商和0比較</p><p>  JNZ BIN1 ;不等于0轉BIN1</p><p>  CMP CX,1 ;累加器和1比較</p><p>  JNZ BIN2 ;不等于1

25、轉BIN2 </p><p>  MOV AH,2 ;等于1位,先在改位前輸出0</p><p>  MOV DL,'0'</p><p><b>  INT 21H</b></p><p>  BIN2: D

26、EC DI ;等于0輸出十進制數(shù)的各位</p><p>  MOV AL,[DI]</p><p>  CALL STDOUT</p><p><b>  LOOP BIN2</b></p><p>  POP AX ;恢復現(xiàn)場&l

27、t;/p><p><b>  POP CX</b></p><p><b>  POP DX</b></p><p><b>  POP DI</b></p><p><b>  RET</b></p><p>  BIN10OUT E

28、NDP</p><p>  子程序2的流程圖如圖2所示。</p><p>  圖2 子程序2的流程圖</p><p>  2.2.3 子程序3</p><p>  子程序3的功能是讀取系統(tǒng)的時間。</p><p>  其基本原理是調用DOS中斷功能中的INT 21H ,當AH=2CH時,讀取系統(tǒng)的時間,使得CH:CL=

29、時:分,DH:DL=秒:秒/100,此程序中精確到秒,這里只要提取時、分、秒、并在內存中分配一緩沖區(qū),用來存放時間,不過此時的時、分、秒都是二進制的,因此要進行二進制和十進制的轉換因此進入BCDASC1子程序進行轉換成相應的ASCII碼字符。</p><p>  子程序的源程序如下:</p><p>  TIME PROC NEAR ;顯示時間子程序</p&

30、gt;<p>  DISPLAY1: MOV SI,0</p><p>  MOV BX,100 ;除以100取整、取余</p><p>  DIV BL</p><p>  MOV AH,2CH ;取系統(tǒng)時間</p><p>  INT 21H&

31、lt;/p><p>  MOV AL,CH ;把小時數(shù)給al</p><p>  CALL BCDASC ;將時間數(shù)值轉換成ASCII碼字符</p><p>  INC SI</p><p>  MOV AL,CL ;把分數(shù)給al</p><p&g

32、t;  CALL BCDASC</p><p>  INC SI</p><p>  MOV AL,DH ;把秒數(shù)給al</p><p>  CALL BCDASC</p><p>  MOV BP,OFFSET DBUFFER ;輸出':',作為

33、分隔符</p><p>  MOV DX,0C0DH</p><p>  MOV CX,8</p><p>  MOV BX,005EH</p><p>  MOV AX,1301H</p><p>  RE: MOV CX,0FFFFH ;

34、延時</p><p>  DEC BX ;bx減1</p><p>  JNZ RE ;如果不等于零,轉移到re</p><p>  MOV AH,01H ;讀鍵盤緩沖區(qū)字符到AH寄存器</p><p>  INT 16H ;讀磁盤變

35、化狀態(tài)</p><p>  JE DISPLAY1 ;相等轉移到display1程序</p><p>  JMP START</p><p>  MOV AH,4CH</p><p>  INT 21H ;返dos</p><p><b>

36、;  RET</b></p><p>  TIME ENDP</p><p>  子程序3的流程圖如圖3所示。</p><p>  圖3 子程序3的流程圖</p><p>  2.3 拓展設計及功能說明</p><p>  在本課設中,在完成老師要求的ASCII碼的轉換等基本任務以外,我還在顯示方式中的背

37、景顏色和字體顏色等方面做了拓展。為了使屏幕顯示更加美觀,同時也可以方便地改變字體顏色,我采用的是顯示器輸出中斷調用即為INT 10H,其中的0號功能就是指設置顯示方式,入口參數(shù):AH=0(功能號),AL=設置方式(0~ 7)。出口參數(shù):無。一共有8中不同的顯示方式,通過修改AL的值即可。</p><p>  2.4 程序設計的主流程圖</p><p>  其程序設計的主流程圖如圖4所示:&

38、lt;/p><p>  圖4 程序設計的主流程圖</p><p><b>  3 方案比較</b></p><p><b>  3.1 方案1</b></p><p>  3.1.1 原理說明</p><p>  首先在數(shù)據(jù)段開辟一顯示緩沖區(qū),用來存儲系統(tǒng)時間。然后調用BIOS

39、中斷,返回系統(tǒng)時間,并將來返回的二進制時間轉換成ASCII碼,分別將來小時數(shù)、分鐘數(shù)、秒數(shù)存入顯示緩沖區(qū)。按照輸入的提示,若輸入為“T”時, 則通過寫顯存將時間顯示出來,并且運用了延時設置CX,進行緩沖,對BX遞減1并判斷BX,當結果為0時,然后讀取鍵盤緩沖區(qū)字符,若鍵盤緩沖區(qū)有新的字符輸入,則跳入START重新開始,若,沒有則繼續(xù)從系統(tǒng)讀取系統(tǒng)時間,程序一旦進入運行,就將不間斷地在顯示屏顯示時間,要想程序停止運行,可輸入“Q”即可退出

40、。在本方案中用到了我以上介紹的三個子程序。</p><p>  3.1.2 相關理論知識</p><p>  1)、BIOS功能調用:在存儲器系統(tǒng)中,內存器高端8K的ROM中存放有基本輸入輸出系統(tǒng)即為basic Input/Output System,BIOS例行程序。BIOS給PC系列的不同微處理器提供了兼容的系統(tǒng)加電自檢、引導裝入、主要I/O設備的處理程序以及接口控制等功能模塊來處理所

41、有的系統(tǒng)中斷。使用BIOS功能調用,給程序員編程帶來極大方便。程序員不必了硬件的具體細節(jié),可直接使用指令設置參數(shù),并中斷調用BIOS例行程序,所以利用BIOS功能調用編寫的程序簡潔,可讀性好,而且易于移植。調用DOS或BIOS功能時,有以下幾個步驟:</p><p>  (1)、將調用參數(shù)裝入指定的寄存器。</p><p>  (2)、如需功能調用號,把它裝入AH。</p>

42、<p> ?。?)、如需子功能調用號,把它裝入AL。(4)、按中斷號調用DOS或BIOS。(5)、檢查返回參數(shù)是否正確。</p><p>  2)、ASCII的轉換與掃描碼:鍵盤是計算機最基本的一種輸入設備,用來輸入信息,以達到人機對話的目的。當在鍵盤上“按下”或“放開”一個鍵時,如果鍵盤中斷是允許的(21H端口的第一位等于0),就會產生一個類型9的中斷,并轉入到BIOS的鍵盤中斷處理程序。非ASC

43、II碼鍵產生一個指定的操作。在方案1中就用到了通過單個字符的輸入來對菜單的項進行選擇,這樣的程序也稱為交互程序。</p><p>  3)、顯示器輸出中斷調用:10H中斷調用為顯示器中斷,共有17種功 能。下面列出這次課設程序設計時可能需要的幾種功能的使用情況。</p><p> ?。?)、設置顯示方式(0號功能)</p><p>  入口參數(shù):AH=0(功能號),

44、AL=設置方式(0~7)。出口參數(shù):無。</p><p>  其部分顯示方式的8中情況如表1所示:</p><p>  表1 8種不同的顯示方式</p><p> ?。?)、設置光標類型(1號功能)入口參數(shù):AH=1(功能號),CH=光標開始行,CL=光標結束行。出口參數(shù):無。根據(jù)CX給出光標的大小。</p><p> ?。?)、設置光

45、標位置(2號功能)入口參數(shù):AH=2(功能號),BH=頁號,DH=行號,DL=列號。出口參數(shù):無。根據(jù)DX確定了光標位置。</p><p> ?。?)、讀當前光標位置(3號功能)</p><p>  入口參數(shù);AH=3(功能號),BH=頁號。出口參數(shù):DH=行號,DL=列號,CX=光標大小。</p><p>  3.1.3 方案1的流程圖</p>

46、<p>  其方案1的流程圖如圖4所示:</p><p>  圖4 方案1的流程圖</p><p><b>  3.2 方案2</b></p><p>  3.2.1 原理說明</p><p>  本方案采用調用幾個子程序的思想來完成系統(tǒng)時間的顯示,首先取中斷向量,保留原有中斷,然后設置光標的位置,按課設任

47、務的要求,應該設置在屏幕的中央。接著調用BIOS中斷的日時鐘(INT 1AH),讀取系統(tǒng)的時間,然后再調用子程序1將小時的數(shù)值轉化為ASCⅡ碼,并且顯示出來,再調用顯示分號的子程序,分鐘和秒鐘的轉化和顯示依次和小時的同理。而在子程序1中又嵌套了兩個子程序,一個是將數(shù)值轉為ASCⅡ碼的子程序,另一個是將字符顯示在屏幕上的子程序。</p><p>  在方案2中,用到了和方案1差不多的理論知識,比如說也用到了BIOS

48、中斷的INT 10H的功能中斷,也用到了鍵盤掃描碼等等。這里就不再贅述。但是在方案2中,較多的用到了子程序調用的思想。</p><p>  在編程方面,與方案1不同的是,在方案2中我采用了另一種方法來將數(shù)值轉化為ASCⅡ碼,即將數(shù)值循環(huán)的除以10,得到的商即為所轉化的十進制的數(shù)值,但是這種方法比較原始,沒有什么技巧性。而且在本方案中較多的運用了子程序的調用,過程顯得比較復雜。方案1的程序比較簡潔明了,思路也比較清

49、晰,綜上所述,我選擇方案一。</p><p><b>  4 程序的調試過程</b></p><p> ?。?)編譯→匯編源文件,命名為asm。</p><p> ?。?)asm將生成一個OBJ文件,如果有程序有錯誤,則提示不能生成OBJ文件,那么就要檢查源程序中的錯誤,并改正。</p><p> ?。?)點擊連接,然后

50、點擊運行,即可顯示結果。結果如圖所示。</p><p>  (4)如果要退出程序,從鍵盤中輸入“Q”即可。</p><p>  分析:調試屏幕上顯示的提示語與系統(tǒng)時間的位置都可通過前面介紹的內容來改變,且程序可從鍵盤中輸入 “Q”來退出,很方便簡單。而且編者可以根據(jù)自己喜歡的顏色來改變字體和背景的顏色。</p><p>  程序所顯示的結果如圖5所示。</p&

51、gt;<p>  圖5 運行的結果顯示</p><p>  當鍵盤輸入“Q”時,程序的顯示如圖6所示。</p><p>  圖6 當按“Q”時的程序顯示</p><p>  5 調試過程中的問題及解決方法</p><p>  首先是在編程的過程中,在如何使用中斷程序來讀取系統(tǒng)時間上遇到了難題,因為在平時的理論課上,這一方面接觸的

52、比較少,用什么形式的中斷實現(xiàn)功能,對中斷的初始化、具體設置、中斷返回還不是很清楚,對中斷向量表的裝載也比較模糊,由于遇到了這些,我只好先停下我的編程,去圖書館借了清華大學出版社的《匯編語言程序設計》等幾本書,認真翻閱了其中關于中斷功能的知識,也從網上下載了一些例題和功能介紹來研究學習。在我重點研究了中斷過程,通過對這一內容的學習之后,終于對中斷有了詳細的認識,在設計程序時也容易了很多。</p><p>  其次是

53、在程序調試的過程中,當我按下編譯的按鍵時,雖然顯示了是編譯成功,但是下面卻有兩個警告(Warning )如圖7所示。</p><p>  圖7 調試過程中的問題</p><p>  在認真檢查后發(fā)現(xiàn)是由于STACK和ATR的位置和格式有問題,在修改了以后,將程序保存后再編譯時,則顯示編譯成功,而且沒有警告。</p><p>  總之,在編程和調試過程中都有遇到一些不

54、會的地方,但在經過研究和修改之后,都克服這些難題,最終完成所要求的任務。</p><p><b>  6 心得體會</b></p><p>  做了兩個星期的微機原理課程設計之后,我從中發(fā)現(xiàn)了自己還有很多不會的東西,也學到了很多知識。雖然這學期我們學習了微機原理這門課,對匯編語言有了一定的了解和掌握,也有相應的微機原理實驗課讓我們加強實踐,但是真正輪到自己放手去做時,

55、才發(fā)現(xiàn)面對一些以前沒遇到過的問題,要自己認真地去研究和分析,當最后看到自己的編寫的程序調試成功的時候,我真的覺得很開心,有一種小小的成績感油然而生。</p><p>  首先是編寫程序的過程。剛剛開始時,對于要實現(xiàn)課設的任務需要用哪些指令和知識點都是一頭霧水,還有在編程中需要用到一些以前沒學過或者沒接觸過的指令時,比如說如何設置光標位置,如何設置顯示方式,如何讀取系統(tǒng)時間等等,要自己去翻閱相關的書籍,也利用網絡搜

56、索到了很多相關的介紹和例題,進行研究和學習。同時我也很感謝和那些我一起的同學們,遇到難題,我們有時互相討論,互相幫助,共同解決,這讓我們在編程的過程中加快了學習和理解的效率。通過這次的編程,我對微機原理和匯編語言程序有了更加深的認識和理解,也給了我一個很好的機會,講平時理論課上學到的知識和實踐的編程聯(lián)系起來,我想這對我今后的編程有了很大的幫助。</p><p>  其實是程序調試的過程。在我編寫完程序后,我迫不及

57、待的進行調試,卻發(fā)現(xiàn)并沒有形成可執(zhí)行文件,后來經過分析和檢查后發(fā)現(xiàn),我的第一個方案的源程序應該在DOS下運行,于是我用了輕松匯編這個軟件。再次進行安裝和調試時,就可以正確顯示出我的結果。這點讓我領悟到,任何時候出現(xiàn)問題都不要慌張,應該冷靜的認真的分析,總會找到可以解決的辦法。</p><p>  最后是課設材料的整理和編寫的過程。由于有了前幾次的課程設計的經歷,對于排版和字體等的具體要求可以做得比較好,我想這對今

58、后的畢業(yè)設計的撰寫有很大的幫助。</p><p>  總之,這次的課程設計讓我有三個方面的收獲。第一,是對于課本知識的鞏固和提高,對學過的只是一次很好的回顧,因為我們平時這樣的實踐機會不是很多。第二,是我學會了更好地用匯編語言來編程,對于匯編語言的思想和很多的指令在這次課設中都有很大提高。第三,是對各種編程的軟件有很了很好的熟悉和認識,對今后再次使用這些軟件有很大的幫助。</p><p>

59、<b>  參考文獻</b></p><p>  [1] 沈美明、溫冬嬋編著.《IBM—PC匯編語言程序設計(第二版)》.北京:清華大學出版社. 2005年</p><p>  [2] 沈美明、溫冬嬋編著.《IBM—PC匯編語言程序設計(第一版)》.北京:清華大學出版社. 1997年</p><p>  [3] 周佩玲、彭虎、傅忠謙編著.《微機

60、原理與接口技術》. 北京:電子工業(yè)出版社.北京:清華大學出版社. 2007年</p><p>  [4] 陳玉生、王芳著.《IBM-PC匯編語言程序設計輔導及習題解答》.北京:電子科技大學出版社.2006年</p><p>  [5] 張雪蘭、譚毓安、李元章著.《匯編語言程序設計——從DOS到WINDOWS》. 北京:清華大學出版社.2006年 </p><p> 

61、 [6] 余朝琨著.《IBM-PC機匯編語言程序設計》.廈門:廈門大學出版社.2001年 </p><p>  [7] 馬瑞芳著.《匯編語言程序設計典型題解析及自測試題》.西安:西北工業(yè)大學出版社.2002年</p><p>  [8] 程學先、徐東平著.《匯編語言程序設計》.武漢:武漢理工大學出版社.2003年</p><p><b>  附錄</

62、b></p><p>  系統(tǒng)時鐘顯示源程序:</p><p>  STACK SEGMENT</p><p>  DW 200 DUP (?)</p><p>  STACK ENDS</p><p>  DATA SEGMENT</p><p>  SPACE D

63、B 1000 DUP (' ')</p><p>  DBUFFER DB 8 DUP (':'),12 DUP (' ')</p><p>  DBUFFER1 DB 20 DUP (' ')</p><p>  STR DB 'PL

64、EASE INPUT TIME(T) QUIT(Q)',0DH,0AH,'$'</p><p>  DATA ENDS</p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK</p><p><b>  ST

65、ART:</b></p><p>  MOV AX,000DH ;設置顯示方式為320*200彩色文本方式 BIOS 中斷命令</p><p>  INT 10H ;顯示服務</p><p>  MOV AX,DATA</p><p>  MOV DS,AX&l

66、t;/p><p>  MOV ES,AX ;數(shù)據(jù)段,附加段定義</p><p>  MOV BP,OFFSET SPACE</p><p>  LEA DX,STR ;顯示提示信息</p><p>  MOV AH,9 ;顯示提示信息字符串</p>

67、<p>  INT 21H</p><p>  MOV AH,1 ;從鍵盤輸入單個字符</p><p>  INT 21H</p><p>  CMP AL,54H ;AL='T'?</p><p>  JNE B

68、 ;不等于則轉到B程序段</p><p>  CALL TIME ;顯示系統(tǒng)時間 調用TIME子程序</p><p>  B: CMP AL,51H ;AL='Q'?</p><p>  JNE START</p><p>  MOV AH,4CH

69、 ;返回dos狀態(tài)</p><p>  INT 21H</p><p>  TIME PROC NEAR ;顯示時間子程序</p><p>  DISPLAY1: MOV SI,0</p><p>  MOV BX,100 ;除以100取整、取余</p>

70、<p>  DIV BL</p><p>  MOV AH,2CH ;取系統(tǒng)時間</p><p>  INT 21H</p><p>  MOV AL,CH ;把小時數(shù)給al</p><p>  CALL BCDASC ;將時間數(shù)值轉換成AS

71、CII碼字符</p><p>  INC SI</p><p>  MOV AL,CL ;把分數(shù)給al</p><p>  CALL BCDASC</p><p>  INC SI</p><p>  MOV AL,DH ;把秒數(shù)給al&

72、lt;/p><p>  CALL BCDASC</p><p>  MOV BP,OFFSET DBUFFER ;輸出':',作為分隔符</p><p>  MOV DX,0C15H</p><p>  MOV CX,8</p><p>  MOV

73、 BX,005EH</p><p>  MOV AX,1301H</p><p>  INT 10H ;設置光標位置</p><p>  MOV AH,02H</p><p>  MOV DH,0AH</p><p>  MOV DL

74、,24H ;dh顯示行(x坐標);dl顯示列(y坐標)</p><p>  MOV BH,0 ;頁碼為0</p><p>  INT 10H</p><p>  MOV BX,0018H</p><p>  RE: MOV CX,0FFFFH ;延時</p&g

75、t;<p>  DEC BX ;bx減1</p><p>  JNZ RE ;如果不等于零,轉移到re</p><p>  MOV AH,01H ;讀鍵盤緩沖區(qū)字符到AH寄存器</p><p>  INT 16H ;讀磁盤變化狀態(tài)</p&

76、gt;<p>  JE DISPLAY1 ;相等轉移到display1程序</p><p>  JMP START</p><p>  MOV AH,4CH</p><p>  INT 21H ;返dos</p><p><b>  RET<

77、/b></p><p>  TIME ENDP</p><p>  BCDASC PROC ; 時間數(shù)值轉換成ASCII碼字符子程序</p><p>  PUSH BX</p><p>  CBW ; 擴展</p><p>  M

78、OV BL,10</p><p>  DIV BL</p><p>  ADD AL,'0' ; 屏蔽</p><p>  MOV DBUFFER[SI],AL</p><p>  INC SI</p><p>  ADD

79、 AH,'0'</p><p>  MOV DBUFFER[SI],AH</p><p>  INC SI</p><p>  POP BX</p><p><b>  RET</b></p><p>  BCDASC ENDP</p&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論