版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計</b></p><p> 學(xué) 號: </p><p><b> 課程設(shè)計任務(wù)書</b></p><p> 題 目: 存儲器擴(kuò)展分析與設(shè)計 </p><p> 要求完成的主要任務(wù):(包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等
2、具體要求)</p><p> 1. 畫出簡要的硬件原理圖,編寫程序。 </p><p><b> 2.完成以下任務(wù):</b></p><p> (1).設(shè)計一個EEPROM擴(kuò)展電路,由兩片2864擴(kuò)展為16KB容量, 并編程信息檢索程序。</p><p> (2). 編程內(nèi)容:在擴(kuò)展的ROM中存入有9個不同的信息
3、,編號0到8,每個信息包括40個字字符。從鍵盤接收0到8之間的一個編號,然后在屏幕上顯示出相應(yīng)的編號的信息內(nèi)容,按“q”鍵退出。</p><p> 3. 撰寫課程設(shè)計說明書。內(nèi)容包括:摘要、目錄、正文、參考文獻(xiàn)、附錄(程序清單)。正文部分包括:設(shè)計任務(wù)及要求、方案比較及論證、軟件設(shè)計說明(軟件思想,流程,源程序設(shè)計及說明等)、程序調(diào)試說明和結(jié)果分析、課程設(shè)計收獲及心得體會。</p><p&g
4、t;<b> 時間安排:</b></p><p> 2012年12月30 日----- 12月 31日 查閱資料及方案設(shè)計</p><p> 2013年01月 01日----- 01月 05日 編程</p><p> 2013年01月 06日----- 01月 08日 調(diào)試程序</p>&l
5、t;p> 2013年01月 09日----- 01月 10日 撰寫課程設(shè)計報告</p><p> 指導(dǎo)教師簽名: 2013年 1月 11日</p><p> 系主任(或責(zé)任教師)簽名: 年 月 日</p><p><b> 目錄</b></
6、p><p><b> 摘要1</b></p><p> 1設(shè)計意義及任務(wù)2</p><p><b> 1.1設(shè)計意義2</b></p><p><b> 1.2設(shè)計任務(wù)2</b></p><p> 2 EEPROM擴(kuò)展電路設(shè)計3</
7、p><p><b> 2.1方案設(shè)計3</b></p><p><b> 2.2芯片選擇3</b></p><p><b> 2.3連線說明4</b></p><p> 2.4硬件電路圖5</p><p><b> 3程序設(shè)計6
8、</b></p><p><b> 3.1設(shè)計思路6</b></p><p><b> 3.2程序框圖6</b></p><p> 3.2.1主程序流程圖6</p><p> 3.2.2輸入程序流程圖6</p><p> 3.2.3輸出程序流程圖
9、6</p><p> 3.3設(shè)計程序一8</p><p> 3.4設(shè)計程序二10</p><p> 3.5調(diào)試過程12</p><p> 3.5.1調(diào)試過程12</p><p> 3.5.2結(jié)果記錄12</p><p> 3.5.3調(diào)試過程中遇到的問題13</p&
10、gt;<p><b> 結(jié)束語14</b></p><p><b> 參考文獻(xiàn)15</b></p><p><b> 附錄一16</b></p><p><b> 附錄二19</b></p><p><b> 摘要
11、</b></p><p> 存儲器(Memory)是計算機(jī)系統(tǒng)中的記憶設(shè)備,用來存放程序和數(shù)據(jù)。有了存儲器,計算機(jī)才有記憶功能,才能保證正常工作。按存儲介質(zhì)分可分為半導(dǎo)體存儲器和磁表面存儲器。按存儲器的讀寫功能分可分為只讀存儲器(ROM)和隨機(jī)讀寫存儲器(RAM)。</p><p> 只讀存儲器ROM是一種對其內(nèi)容只能讀,不能寫的存儲器。隨著半導(dǎo)體技術(shù)的發(fā)展,只讀存儲器也根
12、據(jù)不同需要設(shè)計出不同的種類。其中電可擦除只讀存儲器(EEPROM)是一種可用電氣方法在線擦除和再編程的只讀存儲器,它既有RAM可讀可改寫的特性,又有非易失性存儲器ROM在掉電后仍能保持所存數(shù)據(jù)的優(yōu)點。因此,EEPROM在單片機(jī)存儲器擴(kuò)展中可以作程序存儲器,也可以用作數(shù)據(jù)存儲器,基于EEPROM存儲器的擴(kuò)展設(shè)計有十分重要的意義。</p><p> 建立一個信息檢索系統(tǒng),每個序號對應(yīng)一個不同的信息。通過鍵盤輸入不同
13、的指令序號,在電腦屏幕上會輸出想要得到的信息。當(dāng)超出序號范圍的時候,屏幕會顯示錯誤。程序還附加一個進(jìn)一步查詢的子程序。在輸出信息后,可以對該信息進(jìn)行查尋,當(dāng)輸入信息與序號相對應(yīng)的信息完全相同時,會在屏幕上顯示NO字樣,然后繼續(xù)進(jìn)行下一次的提示輸入。</p><p> 關(guān)鍵字:存儲器 EEPROM 信息檢索</p><p><b> 1設(shè)計意義及任務(wù)</b>&l
14、t;/p><p><b> 1.1設(shè)計意義</b></p><p> 《微機(jī)原理與接口技術(shù)》主要培養(yǎng)統(tǒng)籌運(yùn)用課本所學(xué)的理論知識,掌握程序設(shè)計模塊化基本理論和基本方法。EEPROM(電可擦寫可編程只讀存儲器)是用戶可更改的只讀存儲器(ROM),其可通過高于普通 電壓的作用來擦除和重編程(重寫)。EEPROM在單片機(jī)存儲器擴(kuò)展中可以作程序存儲器,也可以用作數(shù)據(jù)存儲器。建立
15、一個信息檢索系統(tǒng),然后通過鍵盤輸入不同的指令,輸出想要得到的信息。信息檢索是為了滿足用戶的查詢需求,本次課程設(shè)計是針對我們平時學(xué)習(xí)的理論知識的檢驗,在實踐中考察我們的掌握能力,更好的存儲器的一些問題。</p><p><b> 1.2設(shè)計任務(wù)</b></p><p> 要求完成的主要任務(wù): </p><p> (1)畫出簡要的硬件原理圖,
16、編寫程序。 </p><p> (2)完成以下任務(wù):</p><p> 1)設(shè)計一個EEPROM擴(kuò)展電路,由兩片2864擴(kuò)展為16KB容量,并編程信息檢索程序。</p><p> 2)編程內(nèi)容:在擴(kuò)展的ROM中存入有9個不同的信息,編號0到8,每個信息包括40個字字符。從鍵盤接收0到8之間的一個編號,然后在屏幕上顯示出相應(yīng)的編號的信息內(nèi)容,按‘Q’或‘q’鍵退
17、出。</p><p> 2 EEPROM擴(kuò)展電路設(shè)計</p><p><b> 2.1方案設(shè)計</b></p><p> 8086通過控制138譯碼器來實現(xiàn)控制EEPROM擴(kuò)展電路,即兩片2864芯片。通過D0D7數(shù)據(jù)總線來傳輸數(shù)據(jù),通過地址總線來實現(xiàn)讀寫的輸入輸出,同時數(shù)據(jù)可以先放在74LS373鎖存器中存放來保護(hù)數(shù)據(jù)。</p&g
18、t;<p> 硬件原理圖如圖2-1所示。</p><p><b> 圖2-1硬件原理圖</b></p><p><b> 2.2芯片選擇</b></p><p> EEPROM芯片在寫入時能自動完成擦除,而且不需要專用的編程電源,可直接使用5V電源。在芯片引腳設(shè)計上,2KB的EEPROM2816與相同
19、容量的EPROM2716和靜態(tài)RAM6116兼容,8KB的EEPROM2864A與相同容量的EPROM2764A和靜態(tài)RAM6264兼容,這些特點給硬件電路設(shè)計和調(diào)試帶來了方便。</p><p> 常用的并行EEPROM芯片有2816/2816A、2817/2817A、2864A等, 本次設(shè)計要形成16KB容量,若采用2816/2816A、2817/2817A,需用8塊芯片,連接線麻煩,所以采用2864芯片擴(kuò)展
20、。</p><p> 2816、2817、2864的讀出數(shù)據(jù)時間均為250ns,寫入時間為10ms。</p><p> 2864引腳圖如圖2-2所示。</p><p> 圖2-2 2864引腳圖</p><p><b> 計算芯片數(shù)量:</b></p><p> 2864芯片容量是64/
21、8=8,即8KB。,所以需用兩片2864芯片。</p><p><b> 2.3連線說明</b></p><p><b> 數(shù)據(jù)線:</b></p><p> 2864的8位數(shù)據(jù)線直接與8086的數(shù)據(jù)線相連。</p><p><b> 地址線:</b></p>
22、;<p> 根據(jù)選擇的芯片進(jìn)行地址分配,由于選擇芯片分別是8KB,這樣片內(nèi)尋址需要的地址線是13根,因使用138譯碼器來片選,所以8086上的地址線作為片內(nèi)尋址與8KB的ROM的地址連接。</p><p> 通過一片74LS138譯碼器來控制片選。將控制低8位的2864(1)的,控制高8位的2864(2)的,138譯碼器的輸入端連接到8086的地址線的高位,地址分配表如表2-1所示。</p
23、><p> 所以2864(1)的地址范圍為0000H至1FFFH,2864(2)的地址范圍為2000H至3FFFH,兩片加起來一共是16KB。</p><p> 為了防止CPU在讀取數(shù)據(jù)時,數(shù)據(jù)發(fā)生變化,在硬件電路上采用了74LS373鎖存器。</p><p><b> 控制線:</b></p><p> 取中的兩根
24、地址線如和分別控制兩片2864的讀寫端。</p><p> 地址分配表如表2-1所示。</p><p> 表2-1 地址分配表</p><p><b> 2.4硬件電路圖</b></p><p> 存儲器擴(kuò)展硬件電路圖如圖2-3所示。</p><p> 圖2-3存儲器擴(kuò)展硬件電路圖<
25、;/p><p><b> 3程序設(shè)計</b></p><p><b> 3.1設(shè)計思路</b></p><p> 在存儲器的數(shù)據(jù)段里分配10個小數(shù)據(jù)段,每個小數(shù)據(jù)段分配40個字符,0-8這9個信息存儲信息內(nèi)容,另外一個輸出錯誤信息,Q或q退出。取MSG0的首地址作為整個信息段的首地址,根據(jù)輸入的信號的不同,用序號乘40再
26、加到首地址上找到相應(yīng)序號的信息內(nèi)容。</p><p><b> 步驟為:</b></p><p> ?。?)開始,等待信息輸入;</p><p> ?。?)輸入序號,判斷是否為Q。若是轉(zhuǎn)(7),否則轉(zhuǎn)(3);</p><p> ?。?)判斷是否滿足要求的序號范圍。滿足轉(zhuǎn)(4),否則轉(zhuǎn)(6);</p>&l
27、t;p> ?。?)根據(jù)輸入的序號,計算出相關(guān)信息的物理地址;</p><p> ?。?)輸出結(jié)果,跳轉(zhuǎn)到(2);</p><p> ?。?)輸出錯誤信息提示,轉(zhuǎn)(2);</p><p> (7)結(jié)束,退出程序。</p><p><b> 3.2程序框圖</b></p><p> 3.2
28、.1主程序流程圖</p><p> 主程序流程圖如圖3-1所示。</p><p> 3.2.2輸入程序流程圖</p><p> 輸入程序流程圖如圖3-2所示。</p><p> 程序中需使用DOS調(diào)用程序來顯示一串字符串:</p><p><b> MOV AH,9</b></p
29、><p><b> INT 21H</b></p><p> 3.2.3輸出程序流程圖</p><p> 輸出程序流程圖如圖3-3所示。</p><p> 圖3-1主程序流程圖</p><p> 圖3-2輸入程序流程圖</p><p> 圖3-3輸出程序流程圖&
30、lt;/p><p> 從鍵盤輸入序號,并運(yùn)用DOS命令將所得結(jié)果顯示在屏幕上,隨后返回輸入序號提示語句。</p><p><b> 3.3設(shè)計程序一</b></p><p> 根據(jù)題目,嘗試編寫了一個簡單程序。為與最后的程序作比較,將此程序列出,如下:</p><p> DATA SEGMENT</p>
31、<p> n0 db '0000000000000000000000000000000000000000'</p><p> n1 db'1111111111111111111111111111111111111111'</p><p> n2 db '2222222222222222222222222222222222222222
32、'</p><p> n3 db '3333333333333333333333333333333333333333'</p><p> n4 db '4444444444444444444444444444444444444444'</p><p> n5 db '55555555555555555555555
33、55555555555555555'</p><p> n6 db'6666666666666666666666666666666666666666'</p><p> n7 db '777'</p><p> n8 db '888'</p><p> Errmsg DB &
34、#39;No! Input 0-8! Q or q , Exit $' ;輸出錯誤信息</p><p><b> DATA ENDS</b></p><p> CODE SEGMENT</p><p> ASSUME CS:CODE,DS:DATA
35、 ;段屬性說明</p><p><b> START:</b></p><p> MOVAX,DATA ;初始化DS</p><p> MOVDS,AX</p><p><b> LOP: </b></
36、p><p> MOVAH,01H ;輸入一個數(shù)字</p><p><b> INT21H</b></p><p> CMPAL,'Q' ;判斷是否輸入字符與Q相等,相等跳到EXIT退出</p>&
37、lt;p> JZ EXIT </p><p> CMPAL,'q' ;判斷是否輸入字符與q相等,相等跳到EXIT退出</p><p> JZ EXIT </p><p> CMPAL,'0' ;輸入不
38、在0-8范圍則退出</p><p> JB ERR ;小于0跳轉(zhuǎn)</p><p> CMPAL,'8'</p><p> JA ERR ;大于8跳轉(zhuǎn) </p><p> SUBAL,30H
39、 ;計算字符串的地址</p><p> MOVDH,28H ;28H=40</p><p><b> MULDH</b></p><p> MOVBX,AX ;數(shù)據(jù)放入BX </p><p> CALLDISP </p&
40、gt;<p> JMPLOP ;輸出錯誤信息后,繼續(xù)輸入序號</p><p><b> ERR: </b></p><p> MOVDL,0DH ;輸出提示錯誤語句</p><p> MOVAH,02</p><p>&l
41、t;b> INT21H</b></p><p> MOVDX,OFFSET Errmsg</p><p><b> MOVAH,9</b></p><p> INT21H </p><p> MOVDL,0DH ;回車和換行</p
42、><p> MOVAH,02</p><p><b> INT21H</b></p><p> JMPLOP ;返回LOP繼續(xù)輸入序號</p><p><b> EXIT:</b></p><p> MOVAH,4CH
43、 ;返回DOS</p><p><b> INT21</b></p><p> DISP PROC NEAR </p><p> MOVDL,0DH ;回車換行</p><p> MOVAH,02</p>
44、<p><b> INT21H</b></p><p> MOVDL,0AH ;多字符輸入</p><p> MOVAH,02</p><p> INT21H </p><p> MOVCX,28H ;28H=4
45、0 控制循環(huán)次數(shù)即輸出的信息字符個數(shù)</p><p><b> LOP1:</b></p><p> MOVDL,[BX] ;循環(huán)輸出字符串</p><p> MOVAH,02H</p><p><b> INT21H</b></p>
46、<p> INCBX ;BX打印字符</p><p> LOOPLOP1 </p><p> MOVDL,0DH</p><p> MOVAH,02</p><p><b> INT21H</b></p><p>
47、; MOV DL,0AH</p><p> MOVAH,02</p><p><b> INT 21H</b></p><p><b> RET</b></p><p> DISP ENDP </p><p><b> CODE
48、 ENDS</b></p><p> END START ;源程序結(jié)束</p><p> 調(diào)試結(jié)果如圖3-4所示。</p><p><b> 圖3-4調(diào)試結(jié)果</b></p><p><b> 出現(xiàn)的問題有:</
49、b></p><p> 問題1:開始輸入序號時,只能顯示在屏幕的第一個空間。</p><p> 問題2:在輸出沒有寫滿40個字符的字符串時,輸出是亂碼。</p><p> 問題3:按Q或q退出時,還會顯示一串?dāng)?shù)字再退出。</p><p><b> 3.4設(shè)計程序二</b></p><p&
50、gt; 在程序一調(diào)試的基礎(chǔ)上,檢查程序發(fā)現(xiàn)一些問題,在輸入不是Q或q或0至8的數(shù)字時,沒有寫輸出顯示字符的程序;輸入是應(yīng)該是字符串,因為有回車。在此基礎(chǔ)上,繼續(xù)改善設(shè)計的程序,設(shè)計出程序二,即最終程序。</p><p> 輸入一個序號,首先判斷是否是Q或q。如果是,則直接跳出,結(jié)束程序。如果不是,就在已設(shè)定好的信息庫中檢索相應(yīng)信息,并將信息顯示在屏幕上,緊接著跳入下一次序號輸入界面。如果沒有相應(yīng)的序號所對應(yīng)的
51、信息,即超出序號范圍會自動報錯,并跳到下一次序號輸入界面。</p><p><b> 主體部分程序如下:</b></p><p><b> BEGIN:</b></p><p> CALL CRLF ;回車換行</p><p> LEADX,MSG
52、 ;輸出提示語句Please input a number:</p><p> MOVAH,09H</p><p><b> INT21H</b></p><p> MOVAH,1 ;輸入序號</p><p><b> I
53、NT21H</b></p><p> CMPAL,'Q' ;判斷為‘Q’退出</p><p><b> JEEXIT</b></p><p> CMP AL,'q' ;判斷為‘q’退出</p&g
54、t;<p> JE EXIT</p><p> SUBAL,'0' ;小于0跳轉(zhuǎn)ERROR</p><p> JBERROR </p><p> CMP AL,8 ;大于9跳轉(zhuǎn)ERROR<
55、/p><p> JA ERROR</p><p> MOV BX,OFFSET MSG0 ;取第一個字符串的首地址</p><p> MUL FORTY</p><p> ADDBX,AX ;找到相應(yīng)字符串的地址</p><p> CALL DI
56、SPLAY ;調(diào)用DISPLAY子程序</p><p> 定義ERROR程序:提示錯誤,重新要求輸入序號,再次檢測。</p><p><b> ERROR:</b></p><p> CALL CRLF ;回車換行</p><p> LE
57、A DX,ERRMSG ;提示錯誤語句</p><p> MOV AH,09H</p><p> INT 21H</p><p> CALL CRLF</p><p> JMP BEGIN ;返回BEGIN程序</p>&
58、lt;p> 定義顯示信息程序:將字符信息一個個輸出。</p><p> DISPLAY PROC NEAR</p><p> CALL CRLF</p><p> LEA DX,MSG9 ;提示語The message is:</p><p> MOV AH,09H</p
59、><p> INT 21H</p><p> MOV CX,40 ;設(shè)置循環(huán)次數(shù)</p><p><b> DISP1:</b></p><p> MOV DL,[BX] ;輸出字符串</p><p&g
60、t; MOV AH,2</p><p> INT 21H</p><p> INC BX</p><p> LOOP DISP1</p><p> CALL CRLF</p><p> JMP BEGIN</p><p> CALL CRL
61、F</p><p> RET ;返回程序</p><p> DISPLAY ENDP</p><p><b> 完整程序見附錄一。</b></p><p><b> 3.5調(diào)試過程</b></p><p&g
62、t;<b> 3.5.1調(diào)試過程</b></p><p> 調(diào)試過程主要由編輯、匯編、鏈接和執(zhí)行等幾個步驟組成。當(dāng)編輯好匯編語言源程序后,將其保存為.ASM文件。再調(diào)用匯編程序?qū)υ闯绦蜻M(jìn)行翻譯,生成.OBJ的目標(biāo)文件。在匯編過程中,源程序有錯誤則不能生成目標(biāo)文件,經(jīng)過多次修改最終生成無錯誤目標(biāo)文件。之后,調(diào)用鏈接程序(LINK)將用戶目標(biāo)程序和庫文件進(jìn)行鏈接、定位,生成.EXE可執(zhí)行文件
63、。如果剛開始可執(zhí)行程序運(yùn)行之后沒有得到預(yù)想的結(jié)果,又要重新檢查源程序的算法錯誤,重新編輯、匯編、鏈接和執(zhí)行,最終得到預(yù)期的結(jié)果。</p><p><b> 3.5.2結(jié)果記錄</b></p><p> 經(jīng)過多次調(diào)試、修改、測試結(jié)果,最后基本符合要求。</p><p> 調(diào)試最終結(jié)果如圖3-5所示。</p><p>
64、 完整的調(diào)試見附錄二。</p><p> 圖3-5調(diào)試最終結(jié)果</p><p> 3.5.3調(diào)試過程中遇到的問題</p><p> (1)問題1:程序運(yùn)行后無法生成.obj文件。</p><p> 首先,由于軟件缺陷,要先運(yùn)行一遍軟件自帶的程序之后,運(yùn)行自己編寫的程序,才能運(yùn)行。另外,在程序有錯誤時,當(dāng)錯誤被改正之后,即能正常生成.
65、obj文件。</p><p> ?。?)問題2:開始輸入序號時,只能顯示在屏幕的第一個空間。</p><p> 檢查程序發(fā)現(xiàn)一些問題,在輸入不是Q或0至8的數(shù)字時,沒有寫輸出顯示字符的程序;輸入是應(yīng)該是字符串而不是字,因為需要有回車。</p><p> ?。?)問題3:選擇序號后,屏幕上出現(xiàn)錯誤附加信息。</p><p> 這是由于,設(shè)計
66、的是40個字符空間,當(dāng)某一條序號所對應(yīng)的信息達(dá)不到四十個字符時,由于是順序存儲,計算機(jī)會自動用下一個序號所對應(yīng)的信息填補(bǔ)上一條信息未滿40個字符的空間,保證輸出一定是40個字符。于是,當(dāng)調(diào)整每個信息的字符數(shù)均為40個字符時,即將空白寫上空格符,將不會再出現(xiàn)錯誤的附加信息。</p><p> (4)問題4:輸入正確的序號后,會輸出兩個字符串。</p><p> 這是由于在顯示程序的問題,
67、在顯示程序塊結(jié)束的地方加入返回BEGIN語句,程序可以運(yùn)行處正確的結(jié)果。</p><p><b> 結(jié)束語</b></p><p> 通過本次課程設(shè)計讓我學(xué)到了很多東西,受益匪淺。雖然剛才拿到任務(wù),不知從何下手,對編程也是一頭霧水,但在通過看書和網(wǎng)上查閱了相關(guān)芯片資料,了解了一些設(shè)計原理,對硬件設(shè)計有了一定了想法,順利用PROTUS軟件畫出硬件電路圖,編寫程序時,
68、先簡化了題目,從簡單的開始寫,再不斷加入新的功能,逐漸完善所設(shè)計的程序。通過運(yùn)用微機(jī)原理專用匯編程序軟件MF2KP,大大提高了我們的程序設(shè)計部分的效率,可見,這次課程設(shè)計,還鍛煉了我們在短期內(nèi)熟練掌握新軟件,新知識的能力。</p><p> 當(dāng)然,通過這次課程設(shè)計,我還發(fā)現(xiàn)了自己的不少問題。首先是理論知識掌握得不夠牢固,常常忘記一些知識點,對設(shè)計的過程和效率有很大影響。其次是動手能力還有待提高,雖然這次沒有操縱
69、實物,但在計算機(jī)上編程和發(fā)現(xiàn)問題解決問題的能力上有所欠缺。</p><p> 設(shè)計過程中不僅要求我對知識的掌握能力,還要細(xì)心和耐心。在幾天的時間中,我感到自己的知識還是比較匱乏,所以平時還是需要多鍛煉自己,加深對所學(xué)的知識的了解。本次設(shè)計涉及到了書本的絕大部分內(nèi)容,將課本中所學(xué)的知識一一串聯(lián)起來,考驗了自己的基礎(chǔ)知識,也提升了學(xué)會串聯(lián)知識的能力。</p><p> 在今后的學(xué)習(xí)中我要鍛
70、煉自己獨(dú)立分析問題,解決問題的能力,端正態(tài)度努力學(xué)習(xí),不斷的完善自己,充實自己。</p><p><b> 參考文獻(xiàn)</b></p><p> 彭虎.微機(jī)原理與接口技術(shù)(第三版).電子工業(yè)出版社.2011</p><p> 張小鳴.微機(jī)原理與接口技術(shù)(第一版).清華大學(xué)出版社.2009</p><p> 康華光.
71、電子技術(shù)基礎(chǔ)數(shù)字部分(第五版).高等教育出版社.2005</p><p> 李志明.計算機(jī)原理與匯編語言程序設(shè)計.中南大學(xué)出版社.2005</p><p> 潘名蓮.微計算機(jī)原理.電子工業(yè)出版社.2004</p><p><b> 附錄一</b></p><p> DATA SEGMENT</p>
72、<p> MESS DB '----------------------------------',0DH,0AH</p><p> DB '| Input a number between 0 and 8|',0DH,0AH</p><p> DB '| Press Q OR q to quit |',0
73、DH,0AH</p><p> DB '---------------------------------',0DH,0AH,'$' ;提示語句</p><p> FORTY DB 40</p><p> MSG0 DB 'I am very happy
74、39;</p><p> MSG1 DB 'Today is Monday '</p><p> MSG2 DB 'Today is Tuesday '</p><p> MSG3 DB'Today is Wesn
75、esday '</p><p> MSG4 DB'Today is Thursday '</p><p> MSG5 DB'Today is Friday '</p><p> M
76、SG6 DB'Today is Saturday '</p><p> MSG7 DB'Today is Sunday '</p><p> MSG8 DB'Today is a good day
77、39;</p><p> MSG DB 'Please input a number:$'</p><p> MSG9 DB'The message is: $'</p><p> MESS1DB'no!$'</p><p> CRLF1 DB 0DH,0AH,'
78、;$' </p><p> ERRMSG DB 'error! invalied parameter!!' ;錯誤信息</p><p><b> DATA ENDS</b></p><p> STACK SEGMENT</p><p> DB 256
79、DUP(0) ;256字節(jié)堆??臻g</p><p> TOS LABEL WORD</p><p> STACK ENDS</p><p> CODE SEGMENT</p><p> MAINPROC FAR</p><p> ASSUME CS:CO
80、DE,DS:DATA,SS:STACK ;段屬性說明</p><p><b> START:</b></p><p> MOVAX,STACK ;初始化SS</p><p> MOVSS,AX</p><p> MOVSP,OFFSET TOS
81、 ;取TOS首地址</p><p> PUSH DS ;保存舊數(shù)據(jù)段</p><p> SUBAX,AX ;AX清零</p><p> PUSH AX ;保存在堆棧中</p><p>
82、 MOVAX,DATA ;初始化DS</p><p> MOVDS,AX</p><p> CALLSHOW ;調(diào)用子程序SHOW</p><p><b> BEGIN:</b></p><p> CALL CRLF
83、 ;回車換行</p><p> LEADX,MSG ;輸出提示語句Please input a number:</p><p> MOVAH,09H</p><p><b> INT21H</b></p><p> MO
84、VAH,1 ;輸入序號</p><p><b> INT21H</b></p><p> CMPAL,'Q' ;判斷為‘Q’退出</p><p><b> JEEXIT</b></p>
85、;<p> CMP AL,'q' ;判斷為‘q’退出</p><p> JE EXIT</p><p> SUBAL,'0' ;小于0跳轉(zhuǎn)error</p><p> JBERROR
86、 </p><p> CMP AL,8 ;大于9跳轉(zhuǎn)error</p><p> JA ERROR</p><p> MOV BX,OFFSET MSG0 ;取第一個字符串的首地址</p><p> MUL FORTY</p>
87、<p> ADDBX,AX ;找到相應(yīng)字符串的地址</p><p> CALL DISPLAY</p><p><b> ERROR:</b></p><p> CALL CRLF ;回車換行</p><p&g
88、t; LEA DX,ERRMSG ;提示錯誤語</p><p> MOV AH,09H</p><p> INT 21H</p><p> CALL CRLF</p><p> CALL CRLF</p><p> JMP BEGIN
89、 ;返回BEGIN程序</p><p> DISPLAY PROC NEAR</p><p> CALL CRLF</p><p> LEA DX,MSG9 ;提示語The message is:</p><p> MOV AH,09H<
90、/p><p> INT 21H</p><p> MOV CX,40 ;設(shè)置循環(huán)次數(shù)</p><p> DISP1: ;輸出字符串子程序</p><p> MOV DL,[BX]</p>&
91、lt;p> MOV AH,2</p><p> INT 21H</p><p> INC BX</p><p> LOOP DISP1</p><p> CALL CRLF</p><p> JMP BEGIN</p><p> CAL
92、L CRLF</p><p> RET ;返回程序</p><p> DISPLAY ENDP </p><p> CRLF PROC NAER ;定義CRLF子程序</p><p> MOV DX,OFF
93、SET CRLF1</p><p> MOV AH,9H</p><p><b> INT 21H</b></p><p><b> RET</b></p><p> CRLF ENDP</p><p> SHOW PROC NEAR
94、 ;定義SHOW子程序</p><p> LEA DX,MESS ;輸出開始提示性語句</p><p> MOV AH,09H</p><p> INT 21H</p><p><b> RET</b>
95、;</p><p> SHOW ENDP</p><p> EXIT: ;返回DOS子程序</p><p> MOV AH,4CH</p><p> INT 21H</p><p> MAIN E
96、NDP</p><p> CODE ENDS</p><p> END START</p><p><b> 附錄二</b></p><p><b> 圖1顯示語句結(jié)果1</b></p><p><b> 圖2顯示語句結(jié)果2</b>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理與接口技術(shù)課程設(shè)計 --存儲器
- 虛擬存儲器課程設(shè)計
- 課程設(shè)計---存儲器管理系統(tǒng)設(shè)計
- 存儲器擴(kuò)展
- 課程設(shè)計--請求頁式存儲器管理
- 微機(jī)原理課程設(shè)計-計時器
- 微機(jī)原理課程設(shè)計
- 微機(jī)原理課程設(shè)計搶答器
- 存儲器動態(tài)分區(qū)算法模擬課程設(shè)計報告
- 存儲器擴(kuò)展實驗
- 《微機(jī)原理與應(yīng)用》課程設(shè)計
- 微機(jī)原理課程設(shè)計---競賽搶答器設(shè)計
- 微機(jī)原理課程設(shè)計--簡易計算器設(shè)計
- 微機(jī)原理課程設(shè)計波形發(fā)生器
- 微機(jī)原理簡易計算器課程設(shè)計
- 微機(jī)原理課程設(shè)計--搶答計時器
- 微機(jī)原理課程設(shè)計-函數(shù)發(fā)生器
- 微機(jī)原理課程設(shè)計---函數(shù)發(fā)生器
- 微機(jī)原理課程設(shè)計-- 波形發(fā)生器
- 微機(jī)原理課程設(shè)計—— 定時器系統(tǒng)
評論
0/150
提交評論