版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 引言</b></p><p> 21世紀(jì)是信息技術(shù)高度發(fā)展且得到廣泛應(yīng)用的時(shí)代,信息技術(shù)從多方面改變著人類(lèi)的生活、工作和思維方式。我們每一個(gè)人都應(yīng)當(dāng)學(xué)習(xí)信息技術(shù)、應(yīng)用信息技術(shù)。微型計(jì)算機(jī)原理與接口技術(shù)是我們計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)重要的一門(mén)基礎(chǔ)專(zhuān)業(yè)課之一,要求我們有較強(qiáng)的自學(xué)能力和分析解決問(wèn)題的能力以及實(shí)際動(dòng)手能力,其作用是為了培養(yǎng)學(xué)生善于用計(jì)算機(jī)作為工具。通過(guò)課
2、程設(shè)計(jì)掌握匯編語(yǔ)言的編程、調(diào)試,通過(guò)對(duì)芯片的學(xué)習(xí),初步了解微機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)過(guò)程及設(shè)計(jì)過(guò)程。</p><p> 長(zhǎng)期以來(lái),注重課本知識(shí),輕視實(shí)際動(dòng)手能力是我們學(xué)習(xí)中普遍從在的現(xiàn)象。進(jìn)行課程設(shè)計(jì)的目的就是要改變我們的這種學(xué)習(xí)方法,使我們即具備了理論知識(shí),也能夠解決實(shí)際學(xué)習(xí),生活工作方面遇到的問(wèn)題。讓我門(mén)把理論用到了實(shí)際中去,將知識(shí)變成實(shí)際的生產(chǎn)力,把理論與實(shí)際有效的結(jié)合起來(lái),讓我們對(duì)知識(shí)有了更深一步的學(xué)習(xí)。也促進(jìn)
3、了我們的學(xué)習(xí)積極心。也做到了手與腦的有效結(jié)合。</p><p> 通過(guò)課程設(shè)計(jì),也可以讓我們對(duì)所學(xué)的知識(shí)有了更一步的了解,并能掌握學(xué)習(xí)理論時(shí)沒(méi)有注意的細(xì)節(jié)。也會(huì)意識(shí)到程序的編寫(xiě)要注意沒(méi)一個(gè)細(xì)節(jié),每一個(gè)空格等,并能通過(guò)調(diào)試尋找錯(cuò)誤,改正錯(cuò)誤,解決問(wèn)題。計(jì)算機(jī)課程有兩種不同的方法:一是從理論入手;二是從實(shí)際入手。</p><p> 中國(guó)有上下五千年的歷史,都是應(yīng)用時(shí)間來(lái)記載的,時(shí)間就是金錢(qián)
4、,所以就從我們的生活和實(shí)際出發(fā),我們的每件事,每個(gè)計(jì)劃或是事件的安排都會(huì)受到時(shí)間的限制,而這次的課程設(shè)計(jì)也就是我們?nèi)粘I钪刑幪幾⒁獾?,一個(gè)有關(guān)時(shí)間的問(wèn)題。</p><p><b> 目錄</b></p><p><b> 引言1</b></p><p><b> 1. 概述3</b><
5、;/p><p> 1.1 課程設(shè)計(jì)的目的3</p><p> 1.2 課程設(shè)計(jì)的任務(wù)3</p><p> 1.3設(shè)計(jì)的題目3</p><p> 1.4 設(shè)計(jì)要求3</p><p> 2.總體方案設(shè)計(jì)4</p><p> 2.1 主程序設(shè)計(jì)思想4</p><
6、;p> 2.2 設(shè)計(jì)原理說(shuō)明4</p><p> 2.3 設(shè)計(jì)應(yīng)用的環(huán)境4</p><p><b> 3. 系統(tǒng)分析4</b></p><p><b> 4. 軟件設(shè)計(jì)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)時(shí)間16</p><p> 5.2按B鍵修改年月日16</p><p> 5.3按C鍵修改具體時(shí)間17</p><p> 6. 設(shè)計(jì)總結(jié)17</p><p> 7. 參考文獻(xiàn)17<
8、;/p><p><b> 概述</b></p><p> 1.1 課程設(shè)計(jì)的目的</p><p> 對(duì)學(xué)生掌握知識(shí)的深度、運(yùn)用理論去處理問(wèn)題的能力、實(shí)驗(yàn)?zāi)芰Α⒄n程設(shè)計(jì)能力、書(shū)面及口頭表達(dá)能力進(jìn)行考核。</p><p> 匯編語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)是在教學(xué)實(shí)踐基礎(chǔ)上進(jìn)行的一次大型實(shí)驗(yàn),也是對(duì)該課程所學(xué)理論知識(shí)的深化和提高
9、。因此,要求學(xué)生能綜合應(yīng)用所學(xué)知識(shí),設(shè)計(jì)與制造出具有較復(fù)雜功能的應(yīng)用系統(tǒng),并且在實(shí)驗(yàn)的基本技能方面上進(jìn)行一次全面的訓(xùn)練。</p><p> 培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成匯編程序課題的能力。使學(xué)生能夠較全面地鞏固和應(yīng)用課堂中所學(xué)的基本理論和程序設(shè)計(jì)方法,能夠較熟練地完成匯編語(yǔ)言程序的設(shè)計(jì)和調(diào)試。</p><p> 提高學(xué)生對(duì)工作認(rèn)真負(fù)責(zé)、一絲不茍,對(duì)同學(xué)團(tuán)結(jié)友愛(ài),協(xié)作攻關(guān)的基本素質(zhì)。
10、培養(yǎng)學(xué)生從資料文獻(xiàn)、科學(xué)實(shí)驗(yàn)中獲得知識(shí)的能力,提高學(xué)生從別人經(jīng)驗(yàn)中找到解決問(wèn)題的新途徑的悟性,初步培養(yǎng)工程意識(shí)和創(chuàng)新能力。培養(yǎng)學(xué)生勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求是、有錯(cuò)必改,用實(shí)踐來(lái)檢驗(yàn)理論,全方位考慮問(wèn)題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。</p><p> 1.2 課程設(shè)計(jì)的任務(wù)</p><p> 通過(guò)微型計(jì)算機(jī)原理與接口技術(shù)的課程設(shè)計(jì)可以讓我們學(xué)生更深一步的了解課本知識(shí),掌握編譯器的編譯環(huán)境
11、,從而能對(duì)自己所寫(xiě)的編程進(jìn)行不斷的改進(jìn),最終達(dá)到我們想要的結(jié)果。課程設(shè)計(jì)不但培養(yǎng)了我們的動(dòng)手能力,還激發(fā)了我門(mén)對(duì)課外知識(shí)的興趣,我們可以從圖書(shū)館,找到相關(guān)的書(shū)籍進(jìn)行學(xué)習(xí),也可以上網(wǎng)查閱到我們想要的東西。學(xué)到我們?cè)跁?shū)本上學(xué)不到的東西,從而開(kāi)闊我們的視野。</p><p><b> 設(shè)計(jì)的題目</b></p><p> 用匯編語(yǔ)言編寫(xiě)一個(gè)時(shí)鐘程序,再微機(jī)屏幕上顯示當(dāng)前
12、時(shí)間的年、月、日、時(shí)、分、秒。在程序起動(dòng)后可鍵入當(dāng)前時(shí)間,回車(chē)鍵按下后,開(kāi)始計(jì)時(shí),微機(jī)屏幕上顯示當(dāng)前時(shí)間XXXX年XX月XX日XX時(shí)XX分XX秒。并且可以進(jìn)行對(duì)時(shí)間的修改等操作。</p><p><b> 1.4 設(shè)計(jì)要求</b></p><p> ?。?)了解并掌握匯編語(yǔ)言設(shè)計(jì)的一般方法,具備初步的獨(dú)立分析的設(shè)計(jì)能力;
13、 </p><p> ?。?)初步掌握軟件開(kāi)發(fā)過(guò)程的問(wèn)題分析、系統(tǒng)分析、程序編碼、測(cè)試運(yùn)行等基本方法和能力;</p><p> (3)提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問(wèn)題的能力。</p><p> ?。?)最后掌握用匯編語(yǔ)言編寫(xiě)程序,畫(huà)出程序流程圖,對(duì)程序進(jìn)行調(diào)試。</p><p><b> 2.總體方案設(shè)計(jì)&l
14、t;/b></p><p> 2.1 主程序設(shè)計(jì)思想</p><p> 此設(shè)計(jì)程序要求結(jié)構(gòu)化的顯示系統(tǒng)的時(shí)間和日期。程序要求能對(duì)時(shí)間的年月日和時(shí)分秒進(jìn)行修改并有退出選項(xiàng)的功能。我們可以設(shè)計(jì)三個(gè)選項(xiàng)以供用戶選擇:B對(duì)年月日進(jìn)行修改, C對(duì)時(shí)分秒進(jìn)行修改和Esc退出程序。三個(gè)選項(xiàng)分別可以用三個(gè)過(guò)程實(shí)現(xiàn)其功能。</p><p> 2.2 設(shè)計(jì)原理說(shuō)明</
15、p><p><b> (1)日期時(shí)間顯示</b></p><p> 先在數(shù)據(jù)端開(kāi)一段顯示緩沖區(qū),用來(lái)存儲(chǔ)系統(tǒng)時(shí)間。調(diào)用DOS中斷,得到系統(tǒng)當(dāng)前時(shí)間,并將其二進(jìn)制轉(zhuǎn)換成ASCII碼。再分別將小時(shí)數(shù)、分鐘數(shù)、秒數(shù)存入顯示緩沖區(qū)。</p><p><b> ?。?)日期時(shí)間修改</b></p><p>
16、 在修改時(shí)間的時(shí)候調(diào)用鍵盤(pán)輸入輸出程序?qū)崿F(xiàn)日期時(shí)鐘的修改功能,然后存入結(jié)束字符‘$’。調(diào)用DOS字符串顯示功能將日期時(shí)間顯示在顯示器上,調(diào)用屏幕的I/O中斷,定位光標(biāo)的開(kāi)始位置,將時(shí)間顯示在預(yù)先定義好的位置。</p><p><b> ?。?)延時(shí)程序</b></p><p> 把程序設(shè)計(jì)成用刷新的方式來(lái)不斷獲取系統(tǒng)的時(shí)間,這樣就有了會(huì)一秒一秒走動(dòng)的電子時(shí)鐘。在此過(guò)
17、程需要用到延時(shí)程序,所以我們把延時(shí)程序單獨(dú)做成一個(gè)子程序,然后在需要的時(shí)候調(diào)用它,使得時(shí)間的顯示程序更加精煉。</p><p> 2.3 設(shè)計(jì)應(yīng)用的環(huán)境</p><p><b> 硬件環(huán)境:PC機(jī)。</b></p><p> 軟件環(huán)境:Masm2009。</p><p><b> 系統(tǒng)分析</b&
18、gt;</p><p> 看時(shí)間已經(jīng)是我們每天都在干的事情,而且我們身邊的電子表,時(shí)鐘表,手表等都用了不同的方式在顯示著時(shí)間,這次的課程設(shè)計(jì)正是我們身邊這些時(shí)間顯示的結(jié)合,我們既可以看著它走動(dòng),也可以對(duì)它進(jìn)行修改,并且它顯示的時(shí)間與我們的電腦是同步的,當(dāng)然你改動(dòng)它的值,電腦上的時(shí)間也會(huì)改動(dòng)。所以這個(gè)設(shè)計(jì)對(duì)我來(lái)說(shuō)是意義很大的。</p><p> 它既用到了我們微機(jī)原理所學(xué)的知識(shí),也用到了
19、編譯器中涉及到的知識(shí),既可以讓我們看見(jiàn)它的實(shí)質(zhì),也可以從中學(xué)到很多編譯方面的知識(shí),為我們以后的學(xué)習(xí)打下了基礎(chǔ)。有了一個(gè)小小的設(shè)計(jì),我們就會(huì)邁進(jìn)一大步,了解更深的知識(shí)。</p><p> 此次設(shè)計(jì)也用到了DOS系統(tǒng)方面的知識(shí),讓我門(mén)對(duì)知識(shí)有了多角度的認(rèn)識(shí)。</p><p><b> 軟件設(shè)計(jì)</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,'$' ;提示輸入時(shí)間的格式&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ù)段開(kāi)一段時(shí)間顯示緩沖區(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 ? ;小時(shí)</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 ; 確定各個(gè)邏輯段的類(lèi)型</p><p><b> START:<
26、/b></p><p> DISPLAY: ;時(shí)間顯示部分</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時(shí)間調(diào)用功能,功能號(hào):2AH,年,月,日分別保存在CX,DH,DL中</p&g
28、t;<p><b> INT 21H</b></p><p> MOV AX,CX ; 年設(shè)定</p><p> CALL BCTD ; 調(diào)用進(jìn)制轉(zhuǎn)換子程序</p><p><b> P
29、USH AX</b></p><p> AND AH,0F0H ; 選取AH高四位</p><p> MOV CL,4 ; 設(shè)置右循環(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,指針指向下一個(gè)緩沖區(qū)的下一個(gè)地址</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ū)的第二個(gè)地址</p><p><b> INC BX</b></p><p><b> PUSH AX</b></p><p> AND AL,0F0H
33、 ; 選取AL高四位</p><p> MOV CL,4 ; 設(shè)置右循環(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,指針指向下一個(gè)緩沖區(qū)的下一個(gè)地址</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ū)的第二個(gè)地址</p><p><b> INC BX</b></p><p> ;---------------------</p><p> MOV AL , ':' ;顯示分隔符號(hào)</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 ;月設(shè)定</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 , ':' ;顯示分隔符號(hào)</p><p>
42、 MOV [BX] , AL</p><p><b> INC BX</b></p><p> ;------------------------------------------------------------------------- </p><p> MOV AH,2AH
43、 ;日設(shè)定</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、 ;顯示分隔符號(hào)</p><p> MOV [BX] , AL</p><p><b> INC BX </b></p><p> ;-------------------------------------------------------</p><p> MOV
48、 AH , 2CH ; 調(diào)用DOS時(shí)間調(diào)用功能,功能號(hào):2CH,小時(shí),分鐘,秒數(shù)分別保存在CH,CL,DH中</p><p><b> INT 21H</b></p><p> MOV AL,CH ; 小時(shí)數(shù)設(shè)定</p><
49、p><b> MOV AH,0</b></p><p> CALL BCTD ; 調(diào)用進(jìn)制轉(zhuǎn)換子程序</p><p><b> PUSH AX</b></p><p> AND AL,0F0H
50、 ; 選取AL高四位</p><p> MOV CL,4 ; 設(shè)置右循環(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,指針指向下一個(gè)緩沖區(qū)的下一個(gè)地址</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ū)的第二個(gè)地址</p><p><b> INC BX</b></p><p> ;----------------------------------------------------------</p><p> MOV AL , ':' ;顯示分隔符號(hào)&
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ù)設(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、 ;顯示分隔符號(hào)</p><p> MOV [BX] , AL</p><p><b> INC BX</b></p><p> ;------------------------------------------------------------------------- <
60、;/p><p> MOV AH,2CH ;秒設(shè)定</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 ;置光標(biāo)位置 ,AH=2,BH=0 DH跟DL分別為行號(hào)與列號(hào),并入棧保護(hù)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顯示功能,功能號(hào)為9</p><p> MOV AH , 9</p><p><b> INT 21H</b></p><p> PUSH BX ;置
68、光標(biāo)位置</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)用精確延時(shí)子程序</p><p> MOV AH,1 ;調(diào)用鍵盤(pán)I/O中斷功能號(hà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)到時(shí)間修改程序</p><p> JE CORRECT</p><p> CMP AL,'C' ;是C鍵,轉(zhuǎn)到時(shí)間修改程序 </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 ;程序終止功能號(hào)</p><
74、;p><b> INT 21H</b></p><p><b> RET</b></p><p> ;-----------------二進(jìn)制轉(zhuǎn)BCD碼子程序--------------</p><p> BCTD PROC NEAR </p><p><b>
75、 ;AX輸入?yún)?shù)</b></p><p> ;AX輸出參數(shù),存放調(diào)整過(guò)的BCD碼</p><p> MOV DX,AX</p><p> MOV AX,0</p><p> MOV CX,16 ;設(shè)循環(huán)次數(shù)</p><p><b> BCTD1:</
76、b></p><p> CLC ;清進(jìn)位標(biāo)志C</p><p> RCL DX,1 ;通過(guò)進(jìn)位的循環(huán)右移</p><p> ADC AL,AL ;帶進(jìn)位加法</p><p> DAA ;加法的十進(jìn)制調(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> ;---------------精確延遲時(shí)間子程序---------------</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> ;---------------時(shí)間修改子程序------------</p><p> CORRECT PROC </p><p> CALL INPU
81、T ;調(diào)用鍵盤(pán)輸入子程序輸入數(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> ;---------------鍵盤(pán)輸入子程序-----
83、-----</p><p> INPUT PROC </p><p> PUSH AX ;入棧保護(hù)數(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 ;顯示修改時(shí)間的格式提示</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 ;出棧恢復(fù)數(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)用鍵盤(pán)輸入子程序輸入數(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án)輸入子程序----------</p><p> INPUT2 PROC </p><p> PUSH AX
98、;入棧保護(hù)數(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 ;出?;謴?fù)數(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)時(shí)間</b></p><p
113、><b> 按B鍵修改年月日</b></p><p> 說(shuō)明:修改日期時(shí),必須將B消除掉,才能按正確的格式修改日期。然后按下Enter鍵,系統(tǒng)會(huì)保存已修改好的值。輸入的格式為xxxx xx xx,要有空格。</p><p><b> 按C鍵修改具體時(shí)間</b></p><p> 說(shuō)明:修改時(shí)間時(shí),也要消除
114、C然后輸入正確的格式對(duì)時(shí)間進(jìn)行修改。按下enter鍵自動(dòng)保存時(shí)間。輸入的格式同上。</p><p><b> 設(shè)計(jì)總結(jié)</b></p><p> 為期一周的《微機(jī)原理課程設(shè)計(jì)》結(jié)束了,回想起這一周的課程設(shè)計(jì),頗有一些感慨。此次課程設(shè)計(jì)的題目對(duì)我來(lái)說(shuō)并不簡(jiǎn)單,由于匯編知識(shí)的匱乏,在前面幾天的時(shí)間基本上是把《微機(jī)原理與接口技術(shù)》上的例題看懂,同時(shí)查找一些關(guān)于匯編知識(shí)的
115、書(shū)籍,逐漸才摸索出編寫(xiě)時(shí)鐘程序設(shè)計(jì)的思路以及程序模塊的具體編寫(xiě)。盡管這一周的課程設(shè)計(jì)時(shí)間短暫并且困難重重,但是在解決困難的同時(shí)我也學(xué)到了許多課堂上學(xué)不到的東西。</p><p> 在整個(gè)設(shè)計(jì)過(guò)程中,我不但查閱了一些相關(guān)的資料,還得到了老師和同學(xué)們的幫助,無(wú)論在理論和實(shí)踐能力都得到了很大鍛煉,不但使我學(xué)到了很多知識(shí),還促使我能深入獨(dú)立思考一些問(wèn)題,這對(duì)我以后的學(xué)習(xí)和工作有很大的益處。當(dāng)然由于時(shí)間倉(cāng)促,加上我的編寫(xiě)
116、水平有限,這次課程設(shè)計(jì)也有很多有待改進(jìn)及完善的地方,還請(qǐng)老師指正,在以后的時(shí)間里我會(huì)進(jìn)一步進(jìn)行學(xué)習(xí)和完善。</p><p><b> 參考文獻(xiàn)</b></p><p> ?。?)譚浩強(qiáng)主編的《微型計(jì)算機(jī)原理與接口技術(shù)》(第三版)中國(guó)鐵道出版社;</p><p> ?。?)雷印勝、賈萍、胡曉鵬等主編的《匯編語(yǔ)言程序設(shè)計(jì)教程》科學(xué)出版社;<
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理與匯編語(yǔ)言課程設(shè)計(jì)
- 鍵盤(pán)鋼琴匯編語(yǔ)言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤(pán)鋼琴匯編語(yǔ)言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 鍵盤(pán)鋼琴匯編語(yǔ)言程序設(shè)計(jì)—微機(jī)原理課程設(shè)計(jì)
- 匯編語(yǔ)言課程設(shè)計(jì)--用匯編語(yǔ)言實(shí)現(xiàn)顯示系統(tǒng)時(shí)間的程序
- 《匯編語(yǔ)言》課程設(shè)計(jì)---用匯編語(yǔ)言進(jìn)行音樂(lè)動(dòng)畫(huà)功能的實(shí)現(xiàn)
- 微機(jī)原理與匯編語(yǔ)言課程設(shè)計(jì)-多功能定時(shí)器設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)-課程設(shè)計(jì)
- 匯編語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)
- 匯編語(yǔ)言課程設(shè)計(jì)--代碼轉(zhuǎn)換程序
- 匯編語(yǔ)言與微機(jī)原理 中斷服務(wù)程序的改寫(xiě)
- 匯編語(yǔ)言課程設(shè)計(jì) 音樂(lè)點(diǎn)播程序
- 匯編語(yǔ)言課程設(shè)計(jì)
- 匯編語(yǔ)言課程設(shè)計(jì)
- 《匯編語(yǔ)言》課程設(shè)計(jì)報(bào)告--判斷閏年程序
- 微機(jī)原理及匯編語(yǔ)言習(xí)題
- java課程設(shè)計(jì)--編寫(xiě)一個(gè)記事本程序
- java課程設(shè)計(jì)-編寫(xiě)一個(gè)記事本程序
- 匯編語(yǔ)言課程設(shè)計(jì)報(bào)告
- 匯編語(yǔ)言課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論