微機(jī)原理課程設(shè)計--存儲器擴(kuò)展分析與設(shè)計_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論