版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 引言</b></p><p> 21世紀是信息技術高度發(fā)展且得到廣泛應用的時代,信息技術從多方面改變著人類的生活、工作和思維方式。我們每一個人都應當學習信息技術、應用信息技術。微型計算機原理與接口技術是我們計算機科學與技術專業(yè)重要的一門基礎專業(yè)課之一,要求我們有較強的自學能力和分析解決問題的能力以及實際動手能力,其作用是為了培養(yǎng)學生善于用計算機作為工具。通過課
2、程設計掌握匯編語言的編程、調(diào)試,通過對芯片的學習,初步了解微機應用系統(tǒng)的開發(fā)過程及設計過程。</p><p> 長期以來,注重課本知識,輕視實際動手能力是我們學習中普遍從在的現(xiàn)象。進行課程設計的目的就是要改變我們的這種學習方法,使我們即具備了理論知識,也能夠解決實際學習,生活工作方面遇到的問題。讓我門把理論用到了實際中去,將知識變成實際的生產(chǎn)力,把理論與實際有效的結(jié)合起來,讓我們對知識有了更深一步的學習。也促進
3、了我們的學習積極心。也做到了手與腦的有效結(jié)合。</p><p> 通過課程設計,也可以讓我們對所學的知識有了更一步的了解,并能掌握學習理論時沒有注意的細節(jié)。也會意識到程序的編寫要注意沒一個細節(jié),每一個空格等,并能通過調(diào)試尋找錯誤,改正錯誤,解決問題。計算機課程有兩種不同的方法:一是從理論入手;二是從實際入手。</p><p> 中國有上下五千年的歷史,都是應用時間來記載的,時間就是金錢
4、,所以就從我們的生活和實際出發(fā),我們的每件事,每個計劃或是事件的安排都會受到時間的限制,而這次的課程設計也就是我們?nèi)粘I钪刑幪幾⒁獾模粋€有關時間的問題。</p><p><b> 目錄</b></p><p><b> 引言1</b></p><p><b> 1. 概述3</b><
5、;/p><p> 1.1 課程設計的目的3</p><p> 1.2 課程設計的任務3</p><p> 1.3設計的題目3</p><p> 1.4 設計要求3</p><p> 2.總體方案設計4</p><p> 2.1 主程序設計思想4</p><
6、;p> 2.2 設計原理說明4</p><p> 2.3 設計應用的環(huán)境4</p><p><b> 3. 系統(tǒng)分析4</b></p><p><b> 4. 軟件設計5</b></p><p> 4.1程序流程圖5</p><p> 4.2程序
7、源代碼6</p><p> 5. 系統(tǒng)調(diào)試16</p><p> 5.1顯示系統(tǒng)時間16</p><p> 5.2按B鍵修改年月日16</p><p> 5.3按C鍵修改具體時間17</p><p> 6. 設計總結(jié)17</p><p> 7. 參考文獻17<
8、;/p><p><b> 概述</b></p><p> 1.1 課程設計的目的</p><p> 對學生掌握知識的深度、運用理論去處理問題的能力、實驗能力、課程設計能力、書面及口頭表達能力進行考核。</p><p> 匯編語言程序設計課程設計是在教學實踐基礎上進行的一次大型實驗,也是對該課程所學理論知識的深化和提高
9、。因此,要求學生能綜合應用所學知識,設計與制造出具有較復雜功能的應用系統(tǒng),并且在實驗的基本技能方面上進行一次全面的訓練。</p><p> 培養(yǎng)學生綜合運用所學知識獨立完成匯編程序課題的能力。使學生能夠較全面地鞏固和應用課堂中所學的基本理論和程序設計方法,能夠較熟練地完成匯編語言程序的設計和調(diào)試。</p><p> 提高學生對工作認真負責、一絲不茍,對同學團結(jié)友愛,協(xié)作攻關的基本素質(zhì)。
10、培養(yǎng)學生從資料文獻、科學實驗中獲得知識的能力,提高學生從別人經(jīng)驗中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意識和創(chuàng)新能力。培養(yǎng)學生勇于探索、嚴謹推理、實事求是、有錯必改,用實踐來檢驗理論,全方位考慮問題等科學技術人員應具有的素質(zhì)。</p><p> 1.2 課程設計的任務</p><p> 通過微型計算機原理與接口技術的課程設計可以讓我們學生更深一步的了解課本知識,掌握編譯器的編譯環(huán)境
11、,從而能對自己所寫的編程進行不斷的改進,最終達到我們想要的結(jié)果。課程設計不但培養(yǎng)了我們的動手能力,還激發(fā)了我門對課外知識的興趣,我們可以從圖書館,找到相關的書籍進行學習,也可以上網(wǎng)查閱到我們想要的東西。學到我們在書本上學不到的東西,從而開闊我們的視野。</p><p><b> 設計的題目</b></p><p> 用匯編語言編寫一個時鐘程序,再微機屏幕上顯示當前
12、時間的年、月、日、時、分、秒。在程序起動后可鍵入當前時間,回車鍵按下后,開始計時,微機屏幕上顯示當前時間XXXX年XX月XX日XX時XX分XX秒。并且可以進行對時間的修改等操作。</p><p><b> 1.4 設計要求</b></p><p> (1)了解并掌握匯編語言設計的一般方法,具備初步的獨立分析的設計能力;
13、 </p><p> (2)初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)分析、程序編碼、測試運行等基本方法和能力;</p><p> (3)提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力。</p><p> (4)最后掌握用匯編語言編寫程序,畫出程序流程圖,對程序進行調(diào)試。</p><p><b> 2.總體方案設計&l
14、t;/b></p><p> 2.1 主程序設計思想</p><p> 此設計程序要求結(jié)構化的顯示系統(tǒng)的時間和日期。程序要求能對時間的年月日和時分秒進行修改并有退出選項的功能。我們可以設計三個選項以供用戶選擇:B對年月日進行修改, C對時分秒進行修改和Esc退出程序。三個選項分別可以用三個過程實現(xiàn)其功能。</p><p> 2.2 設計原理說明</
15、p><p><b> ?。?)日期時間顯示</b></p><p> 先在數(shù)據(jù)端開一段顯示緩沖區(qū),用來存儲系統(tǒng)時間。調(diào)用DOS中斷,得到系統(tǒng)當前時間,并將其二進制轉(zhuǎn)換成ASCII碼。再分別將小時數(shù)、分鐘數(shù)、秒數(shù)存入顯示緩沖區(qū)。</p><p><b> ?。?)日期時間修改</b></p><p>
16、 在修改時間的時候調(diào)用鍵盤輸入輸出程序?qū)崿F(xiàn)日期時鐘的修改功能,然后存入結(jié)束字符‘$’。調(diào)用DOS字符串顯示功能將日期時間顯示在顯示器上,調(diào)用屏幕的I/O中斷,定位光標的開始位置,將時間顯示在預先定義好的位置。</p><p><b> ?。?)延時程序</b></p><p> 把程序設計成用刷新的方式來不斷獲取系統(tǒng)的時間,這樣就有了會一秒一秒走動的電子時鐘。在此過
17、程需要用到延時程序,所以我們把延時程序單獨做成一個子程序,然后在需要的時候調(diào)用它,使得時間的顯示程序更加精煉。</p><p> 2.3 設計應用的環(huán)境</p><p><b> 硬件環(huán)境:PC機。</b></p><p> 軟件環(huán)境:Masm2009。</p><p><b> 系統(tǒng)分析</b&
18、gt;</p><p> 看時間已經(jīng)是我們每天都在干的事情,而且我們身邊的電子表,時鐘表,手表等都用了不同的方式在顯示著時間,這次的課程設計正是我們身邊這些時間顯示的結(jié)合,我們既可以看著它走動,也可以對它進行修改,并且它顯示的時間與我們的電腦是同步的,當然你改動它的值,電腦上的時間也會改動。所以這個設計對我來說是意義很大的。</p><p> 它既用到了我們微機原理所學的知識,也用到了
19、編譯器中涉及到的知識,既可以讓我們看見它的實質(zhì),也可以從中學到很多編譯方面的知識,為我們以后的學習打下了基礎。有了一個小小的設計,我們就會邁進一大步,了解更深的知識。</p><p> 此次設計也用到了DOS系統(tǒng)方面的知識,讓我門對知識有了多角度的認識。</p><p><b> 軟件設計</b></p><p><b> 程序
20、流程圖</b></p><p><b> 4.2程序源代碼</b></p><p> DATA SEGMENT</p><p> TN DB ' PLEASE INPUT THE NEW TIME (HH:MM:SS): ',0DH,0AH,'$' ;提示輸入時間的格式&l
21、t;/p><p> TB DB ' PLEASE INPUT THE NEW DATE (YYYY:MM:DD): ',0DH,0AH,'$' ; 提示輸入日期的格式</p><p> MESS DB ' TIME IS: ',0AH,0DH,'$'</p><p> T_
22、BUFF DB 40 ;在數(shù)據(jù)段開一段時間顯示緩沖區(qū) T_BUFF為名字</p><p><b> DB ?</b></p><p> DB 40 DUP (?)</p><p> YEAR DW ?
23、 ;年</p><p> MON DB ? ;月</p><p> DAY DB ? ;日</p><p> HOR DB ? ;小時</p><p>
24、 MIN DB ? ;分鐘</p><p> SEC DB ? ;秒</p><p> DATA ENDS</p><p> STACK SEGMENT STACK </p><p> DB
25、 100 DUP(?)</p><p> STACK ENDS</p><p> CODE SEGMENT </p><p> ASSUME CS:CODE , SS:STACK , DS:DATA ; 確定各個邏輯段的類型</p><p><b> START:<
26、/b></p><p> DISPLAY: ;時間顯示部分</p><p> MOV AX, SEG DATA</p><p> MOV DS , AX</p><p> MOV AX,STACK</p><p><b&
27、gt; MOV SS,AX</b></p><p> MOV BX , OFFSET T_BUFF ; 送T_BUFF的偏移地址到BX</p><p> MOV AH , 2AH ; 調(diào)用DOS時間調(diào)用功能,功能號:2AH,年,月,日分別保存在CX,DH,DL中</p&g
28、t;<p><b> INT 21H</b></p><p> MOV AX,CX ; 年設定</p><p> CALL BCTD ; 調(diào)用進制轉(zhuǎn)換子程序</p><p><b> P
29、USH AX</b></p><p> AND AH,0F0H ; 選取AH高四位</p><p> MOV CL,4 ; 設置右循環(huán)的次數(shù)</p><p> ROL AH,CL
30、 ; 右循環(huán)</p><p> OR AH,30H ; 加30H得到ACSII碼</p><p> MOV [BX],AH ; 將得到的結(jié)果送到T_BUFF緩沖區(qū)</p><p> INC BX
31、 ; BX自加1,指針指向下一個緩沖區(qū)的下一個地址</p><p><b> POP AX </b></p><p> AND AH,0FH ; 選取低四位</p><p><b> OR AH,30H</b>&l
32、t;/p><p> MOV [BX],AH ; 將轉(zhuǎn)換后的低四位值送入緩沖區(qū)的第二個地址</p><p><b> INC BX</b></p><p><b> PUSH AX</b></p><p> AND AL,0F0H
33、 ; 選取AL高四位</p><p> MOV CL,4 ; 設置右循環(huán)的次數(shù)</p><p> ROL AL,CL ; 右循環(huán)</p><p> OR AL,30H
34、 ; 加30H得到ACSII碼</p><p> MOV [BX],AL ; 將得到的結(jié)果送到T_BUFF緩沖區(qū)</p><p> INC BX ; BX自加1,指針指向下一個緩沖區(qū)的下一個地址</p&
35、gt;<p><b> POP AX </b></p><p> AND AL,0FH ; 選取低四位</p><p><b> OR AL,30H</b></p><p> MOV [BX],AL
36、 ; 將轉(zhuǎn)換后的低四位值送入緩沖區(qū)的第二個地址</p><p><b> INC BX</b></p><p> ;---------------------</p><p> MOV AL , ':' ;顯示分隔符號</p><p
37、> MOV [BX] , AL</p><p><b> INC BX</b></p><p> ;-------------------------</p><p> MOV AH , 2AH</p><p><b> INT 21H</b></p><p&
38、gt; MOV AL,DH ;月設定</p><p><b> MOV AH,0</b></p><p><b> CALL BCTD</b></p><p><b> PUSH AX</b></p><p&g
39、t; AND AL,0F0H</p><p><b> MOV CL,4</b></p><p><b> ROL AL,CL</b></p><p><b> OR AL,30H</b></p><p> MOV [BX],AL</p><p&g
40、t;<b> INC BX</b></p><p><b> POP AX</b></p><p> AND AL,0FH</p><p><b> OR AL,30H</b></p><p> MOV [BX],AL</p><p><
41、b> INC BX</b></p><p> ;-------------------------------------------------------------------------</p><p> MOV AL , ':' ;顯示分隔符號</p><p>
42、 MOV [BX] , AL</p><p><b> INC BX</b></p><p> ;------------------------------------------------------------------------- </p><p> MOV AH,2AH
43、 ;日設定</p><p><b> INT 21H</b></p><p><b> MOV AL,DL</b></p><p><b> MOV AH,0</b></p><p><b> CALL BCTD</b></
44、p><p><b> PUSH AX</b></p><p> AND AL,0F0H</p><p><b> MOV CL,4</b></p><p><b> ROL AL,CL</b></p><p><b> OR AL,30H
45、</b></p><p> MOV [BX],AL</p><p><b> INC BX</b></p><p><b> POP AX</b></p><p> AND AL,0FH</p><p><b> OR AL,30H</b
46、></p><p> MOV [BX],AL</p><p><b> INC BX</b></p><p> ;----------------------------------------------------------</p><p> MOV AL , '/'
47、 ;顯示分隔符號</p><p> MOV [BX] , AL</p><p><b> INC BX </b></p><p> ;-------------------------------------------------------</p><p> MOV
48、 AH , 2CH ; 調(diào)用DOS時間調(diào)用功能,功能號:2CH,小時,分鐘,秒數(shù)分別保存在CH,CL,DH中</p><p><b> INT 21H</b></p><p> MOV AL,CH ; 小時數(shù)設定</p><
49、p><b> MOV AH,0</b></p><p> CALL BCTD ; 調(diào)用進制轉(zhuǎn)換子程序</p><p><b> PUSH AX</b></p><p> AND AL,0F0H
50、 ; 選取AL高四位</p><p> MOV CL,4 ; 設置右循環(huán)的次數(shù)</p><p> ROL AL,CL ; 右循環(huán)</p><p> OR AL,30H
51、 ; 加30H得到ACSII碼</p><p> MOV [BX],AL ; 將得到的結(jié)果送到T_BUFF緩沖區(qū)</p><p> INC BX ; BX自加1,指針指向下一個緩沖區(qū)的下一個地址</p><p><b>
52、 POP AX </b></p><p> AND AL,0FH ; 選取低四位</p><p><b> OR AL,30H</b></p><p> MOV [BX],AL ; 將轉(zhuǎn)換后的低四位值送入
53、緩沖區(qū)的第二個地址</p><p><b> INC BX</b></p><p> ;----------------------------------------------------------</p><p> MOV AL , ':' ;顯示分隔符號&
54、lt;/p><p> MOV [BX] , AL</p><p><b> INC BX </b></p><p> ;-------------------------------------------------------</p><p> MOV AH , 2CH</p><p>
55、;<b> INT 21H</b></p><p> MOV AL,CL ;分鐘數(shù)設定</p><p><b> MOV AH,0</b></p><p><b> CALL BCTD</b></p><p
56、><b> PUSH AX</b></p><p> AND AL,0F0H</p><p><b> MOV CL,4</b></p><p><b> ROL AL,CL</b></p><p><b> OR AL,30H</b>&l
57、t;/p><p> MOV [BX],AL</p><p><b> INC BX</b></p><p><b> POP AX</b></p><p> AND AL,0FH</p><p><b> OR AL,30H</b></p&g
58、t;<p> MOV [BX],AL</p><p><b> INC BX</b></p><p> ;-------------------------------------------------------------------------</p><p> MOV AL , ':'
59、 ;顯示分隔符號</p><p> MOV [BX] , AL</p><p><b> INC BX</b></p><p> ;------------------------------------------------------------------------- <
60、;/p><p> MOV AH,2CH ;秒設定</p><p><b> INT 21H</b></p><p><b> MOV AL,DH</b></p><p><b> MOV AH,0</b></
61、p><p><b> CALL BCTD</b></p><p><b> PUSH AX</b></p><p> AND AL,0F0H</p><p><b> MOV CL,4</b></p><p><b> ROL AL,CL
62、</b></p><p><b> OR AL,30H</b></p><p> MOV [BX],AL</p><p><b> INC BX</b></p><p><b> POP AX</b></p><p> AND AL
63、,0FH</p><p><b> OR AL,30H</b></p><p> MOV [BX],AL</p><p><b> INC BX</b></p><p> ;-----------------------------------------------------------
64、-----------</p><p> MOV AL , '$' ;將字符串的結(jié)束位送至顯示緩沖區(qū)的最后一位</p><p> MOV [BX] , AL</p><p> ;---------------------------------------------------------
65、---------------</p><p> PUSH BX ;置光標位置 ,AH=2,BH=0 DH跟DL分別為行號與列號,并入棧保護BX</p><p><b> MOV AH,2</b></p><p><b> MOV BH,0</b>&l
66、t;/p><p><b> MOV DH,10</b></p><p><b> MOV DL,31</b></p><p><b> INT 10H</b></p><p><b> POP BX</b></p><p>
67、LEA DX,T_BUFF ; 送T_BUFF偏移地址到DX,并調(diào)用DOS顯示功能,功能號為9</p><p> MOV AH , 9</p><p><b> INT 21H</b></p><p> PUSH BX ;置
68、光標位置</p><p><b> MOV AH,2</b></p><p><b> MOV BH,0</b></p><p><b> MOV DH,10</b></p><p><b> MOV DL,21</b></p>&l
69、t;p><b> INT 10H</b></p><p><b> POP BX</b></p><p> LEA DX,MESS</p><p><b> MOV AH,9</b></p><p><b> INT 21H</b><
70、/p><p> ;-----------------------------</p><p> CALL DELAY1 ;調(diào)用精確延時子程序</p><p> MOV AH,1 ;調(diào)用鍵盤I/O中斷功能號1,獲取鍵值到AL</p><p><b> INT 16H</b&
71、gt;</p><p> CMP AL, 'B' ; 是B鍵,轉(zhuǎn)到日期修改程序</p><p> JE BORRECT</p><p> CMP AL, 'B' ; 是B鍵,轉(zhuǎn)到日期修改程序</p><p> JE BORRECT</p>
72、;<p> CMP AL,'C' ;是C鍵,轉(zhuǎn)到時間修改程序</p><p> JE CORRECT</p><p> CMP AL,'C' ;是C鍵,轉(zhuǎn)到時間修改程序 </p><p> JE CORRECT </p><p>
73、CMP AL,1BH</p><p> JZ QUIT ;是ESC鍵,退出程序</p><p> JMP DISPLAY</p><p><b> QUIT:</b></p><p> MOV AH,4CH ;程序終止功能號</p><
74、;p><b> INT 21H</b></p><p><b> RET</b></p><p> ;-----------------二進制轉(zhuǎn)BCD碼子程序--------------</p><p> BCTD PROC NEAR </p><p><b>
75、 ;AX輸入?yún)?shù)</b></p><p> ;AX輸出參數(shù),存放調(diào)整過的BCD碼</p><p> MOV DX,AX</p><p> MOV AX,0</p><p> MOV CX,16 ;設循環(huán)次數(shù)</p><p><b> BCTD1:</
76、b></p><p> CLC ;清進位標志C</p><p> RCL DX,1 ;通過進位的循環(huán)右移</p><p> ADC AL,AL ;帶進位加法</p><p> DAA ;加法的十進制調(diào)整</p&
77、gt;<p> XCHG AL,AH ;交換高、低八位</p><p> ADC AL,AL</p><p><b> DAA</b></p><p> XCHG AL,AH</p><p> LOOP BCTD1 ;循環(huán)次數(shù)保存在CX里</p>
78、;<p><b> RET</b></p><p> BCTD ENDP</p><p> ;---------------精確延遲時間子程序---------------</p><p> DELAY1 PROC </p><p> MOV DX,04FFH ;循環(huán)次數(shù)</p
79、><p> UP:XOR CX,CX</p><p><b> A:NOP</b></p><p><b> LOOP A</b></p><p><b> DEC DX</b></p><p><b> JNZ UP</b&g
80、t;</p><p><b> RET</b></p><p> DELAY1 ENDP</p><p> ;---------------時間修改子程序------------</p><p> CORRECT PROC </p><p> CALL INPU
81、T ;調(diào)用鍵盤輸入子程序輸入數(shù)據(jù)</p><p> MOV CH,HOR </p><p> MOV CL,MIN</p><p> MOV DH,SEC</p><p><b> AND DL,0H</b></p><p> MOV AH,2DH</p>&
82、lt;p><b> INT 21H</b></p><p><b> JMP START</b></p><p><b> RET</b></p><p> CORRECT ENDP</p><p> ;---------------鍵盤輸入子程序-----
83、-----</p><p> INPUT PROC </p><p> PUSH AX ;入棧保護數(shù)據(jù)</p><p><b> PUSH BX</b></p><p><b> PUSH CX</b></p><p>&l
84、t;b> PUSH DX</b></p><p><b> PUSHF</b></p><p> MOV DX,OFFSET TN ;顯示修改時間的格式提示</p><p> MOV AH,09H</p><p><b> INT 21H</b><
85、/p><p> MOV DX , OFFSET T_BUFF ;數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)輸入</p><p> MOV AH,0AH</p><p><b> INT 21H</b></p><p><b> AND DX,0H</b></p><p> LEA BX,T
86、_BUFF</p><p><b> INC BX</b></p><p><b> INC BX</b></p><p> MOV DH,[BX]</p><p> SUB DH,30H</p><p><b> INC BX</b><
87、/p><p> MOV DL,[BX]</p><p> SUB DL,30H</p><p><b> MOV CL,10</b></p><p><b> MOV AL,DH</b></p><p><b> MUL CL</b></p&
88、gt;<p><b> ADD AL,DL</b></p><p><b> MOV CH,AL</b></p><p> MOV HOR,AL</p><p><b> INC BX</b></p><p><b> INC BX</b
89、></p><p> MOV DH,[BX]</p><p> SUB DH,30H</p><p><b> INC BX</b></p><p> MOV DL,[BX]</p><p> SUB DL,30H</p><p><b> MO
90、V CL,10</b></p><p><b> MOV AL,DH</b></p><p><b> MUL CL</b></p><p><b> ADD AL,DL</b></p><p><b> MOV CL,AL</b>&l
91、t;/p><p> MOV MIN,AL</p><p><b> INC BX</b></p><p><b> INC BX</b></p><p> MOV DH,[BX]</p><p> SUB DH,30H</p><p><b
92、> INC BX</b></p><p> MOV DL,[BX]</p><p> SUB DL,30H</p><p><b> MOV CL,10</b></p><p><b> MOV AL,DH</b></p><p><b>
93、; MUL CL</b></p><p><b> ADD AL,DL</b></p><p><b> MOV DH,AL</b></p><p> MOV SEC,AL</p><p> POPF ;出棧恢復數(shù)據(jù)</p>
94、;<p><b> POP DX </b></p><p><b> POP CX</b></p><p><b> POP BX</b></p><p><b> POP AX</b></p><p><b> RET
95、</b></p><p> INPUT ENDP</p><p> ;---------------日期修改子程序------------</p><p> BORRECT PROC </p><p> CALL INPUT2 ;調(diào)用鍵盤輸入子程序輸入數(shù)據(jù)</p><p>
96、; MOV CX,YEAR </p><p> MOV DH,MON</p><p> MOV DL,DAY</p><p> MOV AH,2BH</p><p><b> INT 21H</b></p><p><b> JMP START</b></p
97、><p><b> RET</b></p><p> BORRECT ENDP</p><p> ;---------------鍵盤輸入子程序----------</p><p> INPUT2 PROC </p><p> PUSH AX
98、;入棧保護數(shù)據(jù)</p><p><b> PUSH BX</b></p><p><b> PUSH CX</b></p><p><b> PUSH DX</b></p><p><b> PUSHF</b></p><p&g
99、t; MOV DX,OFFSET TB ;顯示修改日期的格式提示</p><p> MOV AH,09H</p><p><b> INT 21H</b></p><p> MOV DX , OFFSET T_BUFF ;數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)輸入</p><p> MOV AH,0AH<
100、;/p><p><b> INT 21H</b></p><p><b> AND DX,0H</b></p><p> LEA BX,T_BUFF</p><p><b> INC BX</b></p><p><b> INC BX&
101、lt;/b></p><p> MOV DH,[BX]</p><p> SUB DH,30H</p><p><b> INC BX</b></p><p> MOV DL,[BX]</p><p> SUB DL,30H</p><p><b>
102、; MOV CL,10</b></p><p><b> MOV AL,DH</b></p><p><b> MUL CL</b></p><p><b> ADD AL,DL</b></p><p> MOV AH,00H</p><
103、;p> MOV CX,100</p><p><b> MUL CX</b></p><p> MOV YEAR,AX</p><p> MOV AX,00H</p><p><b> INC BX</b></p><p> MOV DH,[BX]</
104、p><p> SUB DH,30H</p><p><b> INC BX</b></p><p> MOV DL,[BX]</p><p> SUB DL,30H</p><p><b> MOV CL,10</b></p><p><b
105、> MOV AL,DH</b></p><p><b> MUL CL</b></p><p><b> ADD AL,DL</b></p><p> ADD YEAR,AX</p><p><b> INC BX</b></p>&l
106、t;p><b> INC BX</b></p><p> MOV DH,[BX]</p><p> SUB DH,30H</p><p><b> INC BX</b></p><p> MOV DL,[BX]</p><p> SUB DL,30H<
107、/p><p><b> MOV CL,10</b></p><p><b> MOV AL,DH</b></p><p><b> MUL CL</b></p><p><b> ADD AL,DL</b></p><p>
108、MOV MON,AL</p><p><b> INC BX</b></p><p><b> INC BX</b></p><p> MOV DH,[BX]</p><p> SUB DH,30H</p><p><b> INC BX</b>
109、;</p><p> MOV DL,[BX]</p><p> SUB DL,30H</p><p><b> MOV CL,10</b></p><p><b> MOV AL,DH</b></p><p><b> MUL CL</b>&l
110、t;/p><p><b> ADD AL,DL</b></p><p> MOV DAY,AL</p><p> POPF ;出?;謴蛿?shù)據(jù)</p><p><b> POP DX </b></p><p><b>
111、 POP CX</b></p><p><b> POP BX</b></p><p><b> POP AX</b></p><p><b> RET</b></p><p> INPUT2 ENDP</p><p> ;---
112、-------------------------</p><p> CODE ENDS</p><p><b> END START</b></p><p><b> 系統(tǒng)調(diào)試</b></p><p><b> 顯示系統(tǒng)時間</b></p><p
113、><b> 按B鍵修改年月日</b></p><p> 說明:修改日期時,必須將B消除掉,才能按正確的格式修改日期。然后按下Enter鍵,系統(tǒng)會保存已修改好的值。輸入的格式為xxxx xx xx,要有空格。</p><p><b> 按C鍵修改具體時間</b></p><p> 說明:修改時間時,也要消除
114、C然后輸入正確的格式對時間進行修改。按下enter鍵自動保存時間。輸入的格式同上。</p><p><b> 設計總結(jié)</b></p><p> 為期一周的《微機原理課程設計》結(jié)束了,回想起這一周的課程設計,頗有一些感慨。此次課程設計的題目對我來說并不簡單,由于匯編知識的匱乏,在前面幾天的時間基本上是把《微機原理與接口技術》上的例題看懂,同時查找一些關于匯編知識的
115、書籍,逐漸才摸索出編寫時鐘程序設計的思路以及程序模塊的具體編寫。盡管這一周的課程設計時間短暫并且困難重重,但是在解決困難的同時我也學到了許多課堂上學不到的東西。</p><p> 在整個設計過程中,我不但查閱了一些相關的資料,還得到了老師和同學們的幫助,無論在理論和實踐能力都得到了很大鍛煉,不但使我學到了很多知識,還促使我能深入獨立思考一些問題,這對我以后的學習和工作有很大的益處。當然由于時間倉促,加上我的編寫
116、水平有限,這次課程設計也有很多有待改進及完善的地方,還請老師指正,在以后的時間里我會進一步進行學習和完善。</p><p><b> 參考文獻</b></p><p> (1)譚浩強主編的《微型計算機原理與接口技術》(第三版)中國鐵道出版社;</p><p> ?。?)雷印勝、賈萍、胡曉鵬等主編的《匯編語言程序設計教程》科學出版社;<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機原理與匯編語言課程設計
- 鍵盤鋼琴匯編語言程序設計—微機原理課程設計
- 鍵盤鋼琴匯編語言程序設計—微機原理課程設計
- 鍵盤鋼琴匯編語言程序設計—微機原理課程設計
- 匯編語言課程設計--用匯編語言實現(xiàn)顯示系統(tǒng)時間的程序
- 《匯編語言》課程設計---用匯編語言進行音樂動畫功能的實現(xiàn)
- 微機原理與匯編語言課程設計-多功能定時器設計
- 匯編語言程序設計-課程設計
- 匯編語言程序設計課程設計
- 匯編語言課程設計--代碼轉(zhuǎn)換程序
- 匯編語言與微機原理 中斷服務程序的改寫
- 匯編語言課程設計 音樂點播程序
- 匯編語言課程設計
- 匯編語言課程設計
- 《匯編語言》課程設計報告--判斷閏年程序
- 微機原理及匯編語言習題
- java課程設計--編寫一個記事本程序
- java課程設計-編寫一個記事本程序
- 匯編語言課程設計報告
- 匯編語言課程設計報告
評論
0/150
提交評論