版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
微機原理及應(yīng)用實驗指導(dǎo)書主編:微機原理課程組中原工學(xué)院信息商務(wù)學(xué)院2007年11月11日前言隨著技術(shù)的發(fā)展和進步,微型計算機的應(yīng)用在各行各業(yè)中迅猛發(fā)展。它已成為每個專業(yè)技術(shù)人員必備的基礎(chǔ)。“微機原理與應(yīng)用”已成為高等院校電類專業(yè)的一門專業(yè)基礎(chǔ)主干課程。學(xué)好這門課對后續(xù)課程的學(xué)習(xí)有很大的幫助。該課程是實踐性很強的課程,只有書本上的理論知識遠遠不夠的,只有通過上機實驗才能掌握程序設(shè)計方法;通過實驗才能鞏固所學(xué)的知識和驗證其原理。因此我們編寫了這本實驗指導(dǎo)書,一方面使學(xué)生通過實際動手操作,更深刻的掌握基礎(chǔ)理論實踐知識;另一方面是為了便于組織教學(xué)。全書由兩個部分組成。第一部分為軟件設(shè)計部分,介紹上機的基本過程及匯編軟件的使用,包括EDIT,DEBUG,MASM等。介紹了軟件編程實驗的目的、要求及程序流程圖。實驗內(nèi)容包括基本的上機練習(xí)和順序、循環(huán)、分支和子程序4種基本結(jié)構(gòu)的程序設(shè)計練習(xí)和通過設(shè)計一個比較實用的學(xué)生成績報表系統(tǒng)軟件,使學(xué)生能夠綜合運用匯編語言知識掌握程序設(shè)計方法。第二部分為接口部分。包括6個實驗,有8255簡單接口及交通燈實驗,定時、A/D轉(zhuǎn)換、串行通信實驗及電子鐘設(shè)計制作實驗。這部分綜合了程序設(shè)計及硬件接口電路方面的知識,對學(xué)生全面掌握微機原理與應(yīng)用這門課程有很大的幫助,對后續(xù)課程的學(xué)習(xí)奠定堅實的基礎(chǔ)。本次修訂,增加了2個設(shè)計性實驗。附錄中,介紹了匯編語言上機的一般步驟及各種Debug命令的使用方法。編者2007.11目錄第一章概述1第二章實驗要求及注意事項2一、實驗的基本要求2二、實驗報告寫作要求2三、實驗報告文字要求2四、實驗室管理制度3第三章實驗項目4實驗一匯編語言上機實驗4實驗二分支、循環(huán)程序設(shè)計實驗6實驗三DOS功能調(diào)用實驗7實驗四子程序結(jié)構(gòu)設(shè)計實驗8實驗五學(xué)生成績統(tǒng)計報表9實驗六8255接口簡單I/O實驗10實驗七8255接口模擬交通燈實驗12實驗八8253接口分頻器實驗14實驗九電子鐘設(shè)計與實現(xiàn)15實驗十8251可編程串行口通訊實驗16實驗十一多路A/D轉(zhuǎn)換實驗17第四章附錄19附錄AHKZK8688TE實驗機在串行監(jiān)控配置方式下安裝和啟動19附錄B運行匯編語言源程序的過程20附錄C調(diào)試程序DEBUG的使用說明24附錄D常用可編程接口芯片控制字格式34第五章參考文獻36第一章概述《微機原理與應(yīng)用》是一門實踐性很強的專業(yè)基礎(chǔ)課,僅僅學(xué)習(xí)書本上的理論知識是遠遠不夠的,只有理論與實踐結(jié)合起來,才能全面掌握微型計算機的原理、程序設(shè)計及接口電路。為學(xué)習(xí)后續(xù)課程奠定堅實的基礎(chǔ)。所以,實驗教學(xué)在本門課程中充當(dāng)著重要角色。本課程實驗主要包含三部分的內(nèi)容:匯編語言上機過程、程序設(shè)計、接口技術(shù)及相關(guān)的準(zhǔn)備知識。學(xué)生在使用本指導(dǎo)書前,應(yīng)對附錄上的基礎(chǔ)知識有一定的了解。通過理論教學(xué)后,掌握匯編語言的上機過程,利用順序、分支、循環(huán)、子程序等結(jié)構(gòu)設(shè)計一些基本匯編語言源程序。從而對8086/8088的指令系統(tǒng)、程序結(jié)構(gòu)有一個深入的了解。在學(xué)習(xí)了常用接口電路的基礎(chǔ)上,通過微機原理與接口綜合實驗箱平臺,使學(xué)生選做一些常用接口芯片電路的實驗,掌握接口電路原理及其編程技術(shù)。本指導(dǎo)書包含11個實驗,其中驗證性實驗7個,綜合性實驗2個,設(shè)計性實驗2個,覆蓋了整個教學(xué)大綱的內(nèi)容。驗證性實驗主要要求學(xué)生對書本知識的掌握和理解,通過實驗達到掌握本課程基礎(chǔ)知識的目的。綜合性實驗包含在接口技術(shù)部分。要求學(xué)生在掌握匯編語言程序設(shè)計及接口電路原理的基礎(chǔ)上,綜合硬件和軟件知識,設(shè)計相應(yīng)的硬件電路,并編寫相應(yīng)程序,從而使學(xué)生全面掌握微機原理及接口技術(shù)。設(shè)計性實驗包括軟件設(shè)計和接口設(shè)計的內(nèi)容,學(xué)生可以利用業(yè)余時間,在參閱一些相關(guān)文獻的基礎(chǔ)上,開拓學(xué)生思路,充分調(diào)動學(xué)生的能動性,讓學(xué)有余力的學(xué)生設(shè)計開發(fā)具有一定實用功能的軟件或制作,學(xué)生可以利用業(yè)余時間,在開放實驗室內(nèi)完成。第二章實驗要求及注意事項一、實驗的基本要求微機原理課程是一門實踐性較強的課程。上機實驗的目的是在理論學(xué)習(xí)的基礎(chǔ)上,通過上機實際操作和應(yīng)用,使學(xué)生進一步了解和掌握微型計算機的工作原理,對計算機有一個感性的認識。通過綜合實驗課的練習(xí),使學(xué)生能通過實際操作,實現(xiàn)小型系統(tǒng)的一些簡單功能。達到理論聯(lián)系實際的目的。為了能順利完成實驗課的學(xué)習(xí),做以下要求:學(xué)生在實驗前應(yīng)復(fù)習(xí)教科書有關(guān)章節(jié),認真研讀實驗指導(dǎo)書,了解實驗?zāi)康?、原理與步驟,明確實驗過程中應(yīng)注意的問題。實驗前應(yīng)按具體要求寫出預(yù)習(xí)報告,由指導(dǎo)教師進行抽查,認為確實做好了實驗前的準(zhǔn)備,方可開始實驗。實驗過程中,首先完成實驗指導(dǎo)書要求的實驗內(nèi)容,記錄實驗結(jié)果,達到實驗指導(dǎo)書中要求。然后才可以進行自己設(shè)計的與本課程有關(guān)的實驗項目。實驗完成后,應(yīng)根據(jù)實驗過程,按實驗指導(dǎo)書要求寫出實驗報告。實驗報告要簡明扼要、字跡清楚、代碼及圖表整潔,結(jié)論明確。預(yù)習(xí)報告附在實驗報告后面,作為實驗報告的一部分。預(yù)習(xí)報告應(yīng)包括以下內(nèi)容:(1)實驗名稱、姓名、學(xué)號。(2)按實驗指導(dǎo)書預(yù)習(xí)實驗內(nèi)容、要求。(3)列出實驗項目并簡述原理和操作步驟。(4)預(yù)習(xí)報告應(yīng)使用專用的實驗報告紙。二、實驗報告寫作要求實驗報告是在某項科研活動或?qū)I(yè)學(xué)習(xí)中,實驗者把實驗的目的、方法、步驟、結(jié)果等,用簡潔的語言寫成書面報告。實驗報告一般根據(jù)實驗的先后順序來寫,應(yīng)有以下主要內(nèi)容:1、姓名及日期:學(xué)生資料及寫作日期。2、實驗名稱:用最簡練的語言反映了實驗的內(nèi)容。3、實驗用的儀器和設(shè)備:應(yīng)列出實驗用的各類儀器、設(shè)備。4、實驗的步驟和方法:這是實驗報告極其重要的內(nèi)容。記錄本實驗的主要過程和步驟,設(shè)計相應(yīng)的程序流程圖或硬件電路,編寫源程序;列出實驗環(huán)境參數(shù)及注意事項。5、實驗結(jié)果:應(yīng)完整地記錄實驗的結(jié)果或數(shù)據(jù)及觀察到的圖形。6、分析及計算:應(yīng)對實驗中測到的數(shù)據(jù)進行了分析,并計算結(jié)果。7、實驗討論:利用實驗的結(jié)果對實驗現(xiàn)象及假設(shè)進行討論;比較相似及不同的實驗結(jié)果;說明實驗結(jié)果能否解釋本實驗的問題。8、備注或說明:是否清楚實驗成功或失敗的原因、實驗后的心得體會、建議等。9、實驗結(jié)論:根據(jù)本實驗的結(jié)果,對本實驗做出結(jié)論,結(jié)論應(yīng)與本實驗的目的對應(yīng)。三、實驗報告文字要求1、寫實驗報告是一件非常嚴(yán)肅、認真的工作,要講究科學(xué)性、準(zhǔn)確性、求實性。2、實驗報告描述要清楚、肯定,語言通順,用語專業(yè)、準(zhǔn)確,結(jié)構(gòu)嚴(yán)謹(jǐn)、層次清晰。3、實驗報告中要避免以下錯誤情況的發(fā)生:觀察不細致,沒有及時、準(zhǔn)確、如實記錄,假造實驗現(xiàn)象等做法,外文、符號、公式不準(zhǔn)確,沒有使用統(tǒng)一規(guī)定的名詞和符號。四、實驗室管理制度上機實驗是學(xué)生學(xué)習(xí)期間的重要教學(xué)環(huán)節(jié),學(xué)生進入實驗室,必須嚴(yán)格執(zhí)行實驗室的管理制度,工作人員和任課教師也必須按照實驗室管理制度進行管理。1、學(xué)生進入實驗室,應(yīng)按要求集中就坐,服從指導(dǎo)教師的安排。2、學(xué)生必須填寫實驗登記表,如果發(fā)現(xiàn)設(shè)備故障,馬上向指導(dǎo)教師報告,申請調(diào)換機位,并在實驗登記表上標(biāo)記故障機(在表中設(shè)備狀態(tài)欄填寫故障現(xiàn)象),同時,在實驗登記表上填寫機器號并簽名。登記表的填寫由指導(dǎo)教師負責(zé)組織。3、學(xué)生實驗期間,不得隨意離開實驗室,需要離開實驗室的學(xué)生必須經(jīng)由指導(dǎo)教師的批準(zhǔn)。4、學(xué)生不得攜帶食品、飲料等進入實驗室,發(fā)現(xiàn)后,指導(dǎo)教師與值班人員應(yīng)進行批評教育。對于不接受批評教育的學(xué)生,值班人員和教師有權(quán)利請該學(xué)生離開實驗室。對于態(tài)度惡劣的學(xué)生,交由學(xué)生管理部門依據(jù)學(xué)校有關(guān)管理規(guī)定進行處理。5、學(xué)生應(yīng)愛護實驗設(shè)備,不得私自移動、拆卸機箱,并積極配合值班人員保證設(shè)備完好和安全。6、學(xué)生實驗結(jié)束,經(jīng)指導(dǎo)教師檢查認可并在實驗登記表簽字后,按程序關(guān)閉計算機、關(guān)閉顯示器電源和實驗箱電源后,帶好自己的物品離開實驗室。第三章實驗項目實驗一匯編語言上機實驗一、實驗?zāi)康?、熟悉掌握匯編程序的編輯、編譯、連接、運行,要求在Debug狀態(tài)下查看結(jié)果。2、熟悉Debug對程序進行調(diào)試的方法及步驟。3、熟悉掌握8086常用的匯編語言指令。4、掌握簡單的程序設(shè)計方法。二、實驗屬性驗證性實驗。三、實驗儀器設(shè)備及器材計算機(含有匯編軟件)。四、實驗要求實驗前:在熟練掌握指令系統(tǒng)的基礎(chǔ)上,要求學(xué)生對上機基礎(chǔ)知識(見附錄A、B、和C)有一定的了解,能掌握匯編語言的上機過程及常用的DEBUG調(diào)試命令,按要求寫出預(yù)習(xí)報告;2、實驗時:認真理解實驗內(nèi)容,掌握匯編程序的編輯、編譯、連接、運行及Debug程序的使用;3、實驗后:寫出實驗報告(包括程序流程圖、源程序、實驗結(jié)果)。五、實驗內(nèi)容及原理1、內(nèi)存中存放有兩個雙字的數(shù)據(jù),用加法指令和帶進位加法指令完成兩數(shù)相加。用Debug觀察相加結(jié)果。相加時應(yīng)注意,低位字在前、高位字在后,高位字與高字位、低位字與低位字對應(yīng)相加,高位字相加時,應(yīng)采用帶進位的加法指令。實驗參考程序如下:datasegmentbuffer1dW20h,5040hbuffer2dW2434h,2034hdataendscodesegmentassumecs:code,DS:DATAstart:movax,data;取數(shù)據(jù)段段基址movds,axleasi,buffer1;取buffer1的有效地址送指針SImovax,[si]movdi,offsetbuffer2;取buffer2的有效地址送指針DIaddax,[di];低位字相加mov[si],ax;相加和送變量buffer1保存addsi,2;修改指針,指向高位字adddi,2movax,[si]adcax,[di]mov[si],axMOVAH,4cH;返回DOS,但如在DEBUG下調(diào)試, int21h;可不用此軟中斷hlt;暫停codeendsendstart碼制轉(zhuǎn)換:把寄存器中(或存儲器中)一個字的組合BCD碼,轉(zhuǎn)換為4位ASCII碼,存入相應(yīng)的內(nèi)存單元中,并在DEBUG狀態(tài)下查看運行結(jié)果。(一個字的組合BCD碼包含4位BCD碼,將其依次分解為4個非組合BCD碼,分別加上30H,即成為ASCII碼,并存入內(nèi)存單元)程序參考流程圖見圖3-1。開始從內(nèi)存中取一個字到A開始從內(nèi)存中取一個字到AX把低八位由AL送入BL把高八位由AH送入BHAL與0F相與,結(jié)果加30H,送相應(yīng)內(nèi)存單元BL邏輯右移四位與0F相與,結(jié)果加30H,送相應(yīng)內(nèi)存單元,AH與0F相與,結(jié)果加30H,送相應(yīng)內(nèi)存單元BH邏輯右移四位與0F相與,結(jié)果加30H,送相應(yīng)內(nèi)存單元,結(jié)束1、打開PC機,進入MS-DOS環(huán)境。2、運行編輯程序,進入編輯狀態(tài),輸入源程序。3、保存源程序到MASM目錄下,文件名保存為×××.asm。4、經(jīng)匯編程序MASM匯編后,產(chǎn)生目標(biāo)文件。如果有錯誤,返回編輯狀態(tài)。5、連接目標(biāo)文件,生成可執(zhí)行文件×××.EXE6、在DEBUG狀態(tài)下進行調(diào)試,通過單步、連續(xù)、跟蹤、斷點等調(diào)試方法,在內(nèi)存中觀察程序運行情況。7、如果運行結(jié)果不正確,返回編輯狀態(tài)修改源程序。七、思考題通過何種指令使標(biāo)志寄存器每位置1,清0;在Debug狀態(tài)下,標(biāo)志寄存器每位的狀態(tài)(1,0)是如何表示的?Debug狀態(tài)下,G命令與T命令有何區(qū)別;查閱BCD碼到ASCII碼及十六進制數(shù)之間的轉(zhuǎn)換關(guān)系。圖3-1兩個雙字?jǐn)?shù)相加的流程圖圖3-1兩個雙字?jǐn)?shù)相加的流程圖實驗二分支、循環(huán)程序設(shè)計實驗一、實驗?zāi)康?、進一步掌握匯編程序的編輯、編譯、連接、運行,并在Debug狀態(tài)下查看結(jié)果。2、進一步掌握利用Debug對程序進行調(diào)試的方法。3、進一步熟悉掌握8086常用的匯編語言指令。4、掌握分支程序、循環(huán)程序設(shè)計及調(diào)試方法。二、實驗屬性驗證性實驗。三、實驗儀器設(shè)備及器材計算機(含有匯編軟件)。四、實驗要求1、實驗前:對實驗內(nèi)容進行預(yù)習(xí),完成實驗程序的編寫。按要求完成預(yù)習(xí)報告。2、實驗時:深刻理解分支、循環(huán)程序設(shè)計思想,熟練掌握上機調(diào)試及Debug使用。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、結(jié)果)。五、實驗內(nèi)容及原理開始初始化:SI開始初始化:SI存放數(shù)據(jù)首地址DI存放結(jié)果首地址CX字符串長度AL取一個字符是大寫字母嗎?ALAL-20HCX-1=0?結(jié)束NYNY存放轉(zhuǎn)換結(jié)果參考流程圖見圖3-2。2、從內(nèi)存中存放的一組無符號數(shù)中,找出最大的一個,存入相應(yīng)的內(nèi)存單元。六、實驗步驟同實驗一。七、思考題如何通過偽指令計算內(nèi)存中字節(jié)的個數(shù)。在實驗內(nèi)容2中,如果尋找的數(shù)為有符號數(shù),如何修改程序。圖3-2大小寫字母轉(zhuǎn)換的流程圖圖3-2大小寫字母轉(zhuǎn)換的流程圖實驗三DOS功能調(diào)用實驗一、實驗?zāi)康?、熟練掌握匯編程序的編輯、編譯、連接、運行。2、初步掌握DOS功能調(diào)用的基本方法。3、使用DOS功能調(diào)用顯示程序結(jié)果。二、實驗屬性驗證性實驗。三、實驗儀器設(shè)備及器材計算機(含有匯編軟件)。四、實驗要求1、實驗前:熟悉實驗內(nèi)容,并按要求將程序編好并寫出預(yù)習(xí)報告。2、實驗中:要求學(xué)生熟悉掌握DOS功能調(diào)用的步驟,將程序錄入計算機,經(jīng)匯編、連接、Debug調(diào)試后,運行程序,在DOS環(huán)境下觀察實驗結(jié)果。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、結(jié)果)。大于80分人數(shù)S4+1大于80分人數(shù)S4+1開始初始化:BX地址初值CX循環(huán)值A(chǔ)L[BX]AL≥80?AL≥70?AL≥60?大于60分人數(shù)S2+1小于60分的人數(shù)S1+1地址加1循環(huán)值-1CX=0?結(jié)束大于60分人數(shù)S2+1顯示結(jié)果YNYNYNN1、使用DOS功能調(diào)用,將實驗二中大小寫字母轉(zhuǎn)換的結(jié)果在屏幕上顯示。用鍵盤輸入的方式輸入一串大小寫字母,將其分別轉(zhuǎn)換為大寫、小寫字母并顯示。2、設(shè)有30個學(xué)生的成績分別為90,75,55,60,63……。試編寫程序分別統(tǒng)計低于60、6069、7079及80100分學(xué)生人數(shù),并存入到S1、S2、S3、S4,將統(tǒng)計個數(shù)分別在CRT上顯示(按十進制數(shù)形式進行顯示)。參考流程圖見圖3-3。六、實驗步驟參見實驗一。七、思考題分行顯示時,為何要先執(zhí)行回車換行代碼。在實驗內(nèi)容2中,如圖3-3成績統(tǒng)計程序流程圖果按十六進制顯示,程序如何編寫。圖3-3成績統(tǒng)計程序流程圖實驗四子程序結(jié)構(gòu)設(shè)計實驗一、實驗?zāi)康?、熟練掌握匯編程序的編輯、編譯、連接、運行。2、進一步掌握DOS功能調(diào)用的基本方法。3、掌握子程序結(jié)構(gòu)設(shè)計思想。二、實驗屬性驗證性實驗。三、實驗儀器設(shè)備及器材計算機(含有匯編軟件)。四、實驗要求1、實驗前:熟悉實驗內(nèi)容,并按要求將程序編好并寫出預(yù)習(xí)報告。2、實驗中:學(xué)生熟悉掌握子程序結(jié)構(gòu)設(shè)計思想,利用所學(xué)指令實現(xiàn)實驗內(nèi)容要求的程序編寫。并應(yīng)要求在屏幕上顯示。如有錯誤,在Debug狀態(tài)下進行調(diào)試。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、結(jié)果)。五、實驗內(nèi)容及原理開始設(shè)置數(shù)據(jù)及結(jié)果單元開始設(shè)置數(shù)據(jù)及結(jié)果單元設(shè)置參數(shù)傳遞單元傳遞參數(shù)a調(diào)用子程序求a平方傳遞參數(shù)b調(diào)用子程序求b平方及累加和傳遞參數(shù)c調(diào)用子程序求c平方及累加和調(diào)用子程序顯示結(jié)果結(jié)束2、求,顯示運算結(jié)果(十進制形式)。a,b,c是定義在數(shù)據(jù)段中的三個單字節(jié)的無符號數(shù),結(jié)果存放在這三個數(shù)之后,約定占2個字節(jié)。參考流程圖見圖3-4。六、實驗步驟參見實驗一。七、思考題1、子程序設(shè)計時,應(yīng)注意哪些問題。2、在實驗內(nèi)容2中,假如運算結(jié)果大于字,如何判斷。圖3-4計算平方和的程序流程圖圖3-4計算平方和的程序流程圖實驗五學(xué)生成績統(tǒng)計報表一、實驗?zāi)康?、熟練掌握匯編程序設(shè)計方法和各種程序結(jié)構(gòu)的應(yīng)用。2、熟練掌握DOS功能調(diào)用的基本方法及輸入輸出命令。3、熟練掌握、運用匯編指令。二、實驗屬性設(shè)計性實驗。三、實驗儀器設(shè)備及器材計算機(含有匯編軟件)。四、實驗要求1、實驗前:熟悉實驗內(nèi)容,并按設(shè)計內(nèi)容要求將程序編好并寫出預(yù)習(xí)報告。2、實驗中:利用所學(xué)知識實現(xiàn)實驗內(nèi)容要求的程序編寫,在Debug狀態(tài)下進行調(diào)試。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、結(jié)果)。4、如時間不夠用,可以利用業(yè)余時間,在開放實驗室內(nèi)進行。五、實驗設(shè)計內(nèi)容:1、設(shè)計任務(wù):統(tǒng)計某班學(xué)生某課程成績(成績:0~100分;人數(shù):0~200)2、具體設(shè)計要求:(1)通過鍵盤輸入班級、課程、學(xué)生人數(shù)及該班學(xué)生的成績,并能在CRT上顯示每個學(xué)生的成績;(2)求出最高分、最低分、平均分,均方差及分?jǐn)?shù)分布情況,并在CRT上顯示統(tǒng)計結(jié)果。提示:D=,。式中,D:方差;:平均值;:期望值;:均方差值;Xi:單個成績。統(tǒng)計結(jié)果顯示格式建議如下(僅供參考):Inputthemeritofthisclass:(Xi)Inputthemeritofthisclass:(Xi)XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XX,XXXX,XX,XX,XX,XX…Resultofstatistics:Class,Major,Course,Totalnumber(n)Highscore,Lowscore,Averagescore()Expectvalue(Eξ)=,D=,δ=Meritarrangement:<6060-7070-8080-90>90XXXXXXXXXX六、實驗步驟自定。七、思考題1、如果學(xué)生人數(shù)大于256和某課程成績滿分大于100分時,程序應(yīng)如何處理。2、如何打印輸出統(tǒng)計的結(jié)果。實驗六8255接口簡單I/O實驗一、實驗?zāi)康?、掌握通過8255驅(qū)動LED的接口電路設(shè)計方法。2、掌握8086CPU與接口電路之間信息傳遞方式。3、學(xué)習(xí)編制輸入輸出接口程序的方法。二、實驗屬性驗證性實驗。三、實驗儀器設(shè)備及器材計算機、微機原理綜合實驗箱。四、實驗要求1、實驗前:熟悉實驗內(nèi)容,并按要求將程序編好并寫出預(yù)習(xí)報告。預(yù)習(xí)8255結(jié)構(gòu)及命令字格式。2、實驗中:正確連線,掌握接口電路程序設(shè)計調(diào)試的方法。3、實驗后:寫出實驗報告(含程序流程圖、源程序、電路連接圖,實驗結(jié)果分析)。五、實驗內(nèi)容及原理通過8255的PC口經(jīng)74LS245驅(qū)動8個LED發(fā)光二極管:L1~L8,8255的PB口連接按鍵K1~K5。當(dāng)K1鍵按下時,8個LED同時發(fā)光;當(dāng)K2鍵按下時,8個LED同時熄滅;當(dāng)K3鍵按下時,8個LED按七暗一亮的狀態(tài)左移循環(huán)發(fā)光;當(dāng)K4鍵按下時,8個LED按七暗一亮的狀態(tài)右移循環(huán)發(fā)光;當(dāng)K5鍵按下時,返回DOS狀態(tài)。8086CPU根據(jù)按鍵狀態(tài),通過軟件延時的方法,向外部設(shè)備傳輸信息,使LED左移或右移循環(huán)發(fā)光。電路圖見圖3-5。圖3-5通過8255驅(qū)動LED的接口電路原理圖圖3-5通過8255驅(qū)動LED的接口電路原理圖六、實驗步驟1、打開實驗箱,連結(jié)PC機、微機綜合實驗箱的通訊線;2、根據(jù)自己設(shè)計的電路連接8255與LED發(fā)光二極管(74LS245的輸入端)及按鍵的連線;3、打開PC機電源,通過編輯軟件輸入源程序;4、軟件匯編調(diào)試無誤后,將程序加載到實驗箱中;5、在微機原理綜合實驗箱上調(diào)試程序;6、根據(jù)按鍵,觀察LED發(fā)光二極管的發(fā)光狀態(tài);7、實驗結(jié)束后,關(guān)閉實驗箱電源,拆除并整理好連線。七、思考題 1、8255有幾個端口,怎樣進行端口訪問。 2、各端口的工作模式有哪幾種。實驗七8255接口模擬交通燈實驗一、實驗?zāi)康?、掌握輸入輸出控制電路的設(shè)計方法。2、深入理解8086CPU與接口電路之間信息傳遞方式。3、進一步學(xué)習(xí)編制數(shù)據(jù)輸入輸出的方法。4、學(xué)習(xí)雙色燈的使用。二、實驗屬性綜合性實驗。本實驗綜合了程序設(shè)計(判斷轉(zhuǎn)移、輸入輸出控制、延時子程序等)、可編程輸入輸出接口與輸入輸出外部設(shè)備的電路設(shè)計。三、實驗儀器設(shè)備及器材計算機、微機原理綜合實驗箱。四、實驗要求1、實驗前:熟悉實驗內(nèi)容,并按要求將程序編好并寫出預(yù)習(xí)報告。預(yù)習(xí)8255結(jié)構(gòu)及命令字格式。2、實驗中:正確連線,掌握接口電路程序設(shè)計調(diào)試的方法。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、電路連接圖,實驗結(jié)果分析)。五、實驗內(nèi)容及原理:(一)以8255作為輸出/輸入口,通過驅(qū)動電路控制4個雙色LED(紅、綠、),模擬十字路口交通信號燈的控制。通過開關(guān)改變南北方向或東西方向的通行時間,并具有四方向黃燈同時閃爍的功能。(二)本實驗是模擬交通燈控制,要了解實際交通燈的變化規(guī)律。1、十字路口為東西、南北走向。初始狀態(tài)0:為東西紅燈,南北紅燈,全部禁行。然后轉(zhuǎn)運行狀態(tài)。運行狀態(tài)分為狀態(tài)1~狀態(tài)4,循環(huán)執(zhí)行。狀態(tài)1:南北通行綠燈亮,東西禁行紅燈亮;調(diào)用延時軟件一,延時后轉(zhuǎn)入狀態(tài)2;狀態(tài)2:南北通行狀態(tài)結(jié)束,綠燈閃爍幾次轉(zhuǎn)亮黃燈;調(diào)用延時軟件二,延時后轉(zhuǎn)入狀態(tài)3,此時東西向仍為紅燈禁行;狀態(tài)3:東西通行綠燈亮,南北禁行紅燈亮;調(diào)用延時軟件一,延時后轉(zhuǎn)入狀態(tài)4;狀態(tài)4:東西通行狀態(tài)結(jié)束,綠燈閃爍幾次轉(zhuǎn)亮黃燈;調(diào)用延時軟件二,延時后轉(zhuǎn)入狀態(tài)1,此時南北向仍為紅燈禁行。注:雙色LED由一個紅色LED管芯和一個綠色LED管芯封裝在一起,陰極為共用端:(1)紅色陽極加高電平,綠色陽極加低電平時,紅燈亮。綠色陽極加高電平,紅色陽極加低電平時,綠燈亮。(2)紅色、綠色陽極同時加高電平,顯示黃燈。(3)雙色LED電路原理圖見圖3-6。2、選作部分:可根據(jù)設(shè)置的開關(guān)狀態(tài)改變延時軟件一的延時常數(shù),使南北或東西方向具有不同的通行時間;也可根據(jù)設(shè)置的開關(guān)狀態(tài)進入四方向黃燈同時閃爍的緩行狀態(tài)。六、實驗步驟:1、打開實驗箱,連結(jié)PC機微機原理綜合實驗箱的通訊線;2、根據(jù)自己設(shè)計的電路連接8255與雙色燈驅(qū)動電路及開關(guān)的連線;3、打開PC機電源,通過編輯軟件輸入源程序;4、軟件匯編調(diào)試無誤后,將程序加載到實驗箱中;5、在微機原理綜合實驗箱上通過調(diào)試程序;6、觀察各方向信號燈的變化情況,改變延時程序的延時時間常數(shù),使其符合交通信號燈的變化規(guī)律。7、改變不同開關(guān)的狀態(tài),觀察是否符合設(shè)計要求。8、實驗結(jié)束后,關(guān)閉實驗箱電源,拆除并整理好連線。七、思考題: 1、把雙色的LED變成單色的LED(紅、黃、綠),電路如何連接,控制程序如何改變。 2、是否可以通過鍵盤輸入?yún)?shù)控制交通燈的閃爍時間。紅紅共陰端綠圖3-6雙色LED電路原理圖圖3-6雙色LED電路原理圖實驗八8253接口分頻器實驗一、實驗?zāi)康?、熟練掌握8253接口電路的應(yīng)用。2、了解8253的工作模式,掌握其編程方法。3、了解8253定時器的硬件連接及時序關(guān)系。二、實驗屬性驗證性實驗。三、實驗儀器設(shè)備及器材計算機、微機原理綜合實驗箱。四、實驗要求1、實驗前:預(yù)習(xí)8253工作模式命令字格式,熟悉實驗內(nèi)容,按要求編寫好實驗程序,寫出預(yù)習(xí)報告。2、實驗中:正確連線,掌握接口電路程序設(shè)計調(diào)試的方法,注意觀察實驗現(xiàn)象。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、電路連接圖,實驗結(jié)果分析,畫出時序關(guān)系圖)。五、實驗內(nèi)容及原理編程初始化8253,其設(shè)置為:定時器0工作在方式3(方波)的狀態(tài),定時器1工作在方式2(分頻)的狀態(tài)。1、定時器0輸出的脈沖作為定時器1的時鐘輸入;定時器1輸出的脈沖作為定時器2的時鐘輸入。2、用示波器觀察(可用LED指示燈代替)定時器0和定時器1的輸出引腳之間的波形關(guān)系。3、8253的工作頻率不超過2MHz,輸入的CLK頻率須在2MHz以下。開始關(guān)中斷開始關(guān)中斷置定時器0為方式3送初值為200H置定時器1為方式2送初值為0AH置定時器2為方式2送初值為0AH返回DOS后再作為8253的CLK輸入。將波特率開關(guān)撥至9600,然后從開關(guān)邊上的f插孔引出接到8253的CLK0輸入端。六、實驗步驟參見實驗六。七、思考題1、8253定時計數(shù)器有哪幾種方式,各有什么特點。2、8253工作于計數(shù)狀態(tài)時,輸入的脈沖頻率有什么要求。注:8253中GATE0、GATE1、GATE2接+5V,CLK0接波特率開關(guān)旁的f插孔,見實驗箱中的標(biāo)注,OUT0接CLK1,OUT1接CLK2,CS接200-207孔。圖3-78253初始化編程流程圖圖3-78253初始化編程流程圖實驗九電子鐘設(shè)計與實現(xiàn)一、實驗?zāi)康?、熟練掌握8255A、8253等接口電路設(shè)計及編程方法。2、熟練掌握匯編語言程序設(shè)計方法。3、學(xué)習(xí)動態(tài)顯示、鍵盤輸入等外設(shè)的實現(xiàn)方法。二、實驗屬性設(shè)計性實驗。三、實驗儀器設(shè)備及器材計算機、微機原理綜合實驗箱、萬用表、自制的實驗板和若干電子元件。四、實驗要求1、實驗前:熟悉實驗設(shè)計內(nèi)容,并按要求設(shè)計相應(yīng)的硬件接口電路,將編寫實驗程序并寫出預(yù)習(xí)報告。預(yù)習(xí)8255A、8253的硬件結(jié)構(gòu)及讀寫控制邏輯、動態(tài)顯示、鍵盤輸入等外設(shè)的實現(xiàn)方法、定時器的使用的方法。2、實驗中:正確連線,掌握接口電路及程序設(shè)計調(diào)試的方法。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、硬件電路圖,結(jié)果分析)。五、實驗內(nèi)容及原理1、設(shè)計任務(wù):利用8253的定時功能,設(shè)計一個電子鐘,通過8255A驅(qū)動八段LED實時顯示年、月、日,時、分、秒。2、具體設(shè)計要求如下:(1)日期/時間初值可以通過鍵盤設(shè)置、修改;(2)日期/時間可以通過按鍵切換顯示;(3)秒時鐘每秒更新一次(4)顯示格式建議如下(僅供參考):顯示日期格式:07-12-30顯示時間格式:18:23:54六、實驗步驟自定七、實驗電路結(jié)構(gòu)參考圖8255A8255A八位LED鍵盤連接插座實驗箱圖3-8實驗電路結(jié)構(gòu)示意圖圖3-8實驗電路結(jié)構(gòu)示意圖八、思考題1、閏月如何判斷。2、不用接口芯片,使用純軟件如何在CRT上顯示日期/時間。實驗十8251可編程串行口通訊實驗一、實驗?zāi)康?、掌握8251芯片結(jié)構(gòu)、原理及應(yīng)用程序的設(shè)計方法。2、了解實現(xiàn)串行通訊的硬件環(huán)境,數(shù)據(jù)格式的協(xié)議,數(shù)據(jù)交換的協(xié)議。3、了解PC機通訊程序的設(shè)計方法。二、實驗屬性驗證性實驗。三、實驗儀器設(shè)備及器材計算機、微機原理綜合實驗箱,串行通訊調(diào)試助手軟件。四、實驗要求1、實驗前:預(yù)習(xí)8251工作方式和命令字格式,熟悉實驗內(nèi)容,按要求設(shè)計程序流程圖,編寫好實驗程序,寫出預(yù)習(xí)報告。2、實驗中:正確連線,掌握接口電路程序設(shè)計調(diào)試的方法,注意觀察實驗現(xiàn)象。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、電路連接圖,結(jié)果分析,)。五、實驗內(nèi)容及原理CS連228H~22FH。用RS-232通訊電纜接至實驗箱的9芯通訊插座,另一端接至另一臺PC機的串行通訊接口,該PC機使用串行通訊調(diào)試助手軟件,實現(xiàn)終端仿真。N初始化8251N初始化8251設(shè)置通訊格式設(shè)置為請求發(fā)送、允許發(fā)送、允許接收讀接收緩存器數(shù)據(jù)并顯示發(fā)送鍵值返回DOS開始是結(jié)束標(biāo)志是結(jié)束標(biāo)志有鍵按下接收串口數(shù)據(jù)允許發(fā)送NYNNYYNY六、實驗步驟參見實驗六。七、思考1、8251實現(xiàn)串行通信時,波特率怎么設(shè)置。2、在無MODEM下,兩個8251實現(xiàn)串行通信時,硬件電路如何連接。圖3-98251通訊程序參考流程圖圖3-98251通訊程序參考流程圖實驗十一多路A/D轉(zhuǎn)換實驗一、實驗?zāi)康?、掌握A/D轉(zhuǎn)換與計算機的接口方法。2、掌握A/D芯片片ADC0809轉(zhuǎn)換性能及編程方法。3、通過實驗了解計算機如何進行數(shù)據(jù)采集。4、進一步加深理解CPU與外設(shè)進行數(shù)據(jù)交換的方式。5、進一步熟悉8086匯編語言程序設(shè)計方式。二、實驗屬性綜合性實驗。本實驗綜合了可編程接口及AD轉(zhuǎn)換電路的硬件設(shè)計和程序設(shè)計(數(shù)制轉(zhuǎn)換、判斷轉(zhuǎn)移、DOS系統(tǒng)功能調(diào)用、輸入輸出控制、中斷服務(wù)子程序等)。三、實驗儀器設(shè)備及器材計算機、微機原理綜合實驗箱、萬用表四、實驗要求1、實驗前:熟悉實驗內(nèi)容,按要求將程序編好并寫出預(yù)習(xí)報告。預(yù)習(xí)ADC0809的硬件結(jié)構(gòu)及讀寫控制邏輯、轉(zhuǎn)換原理、讀取轉(zhuǎn)換結(jié)果的方法。2、實驗中:正確連線,掌握接口電路程序設(shè)計調(diào)試的方法。3、實驗后:寫出實驗報告(包含程序流程圖、源程序、電路連接圖,結(jié)果分析)。五、實驗內(nèi)容及原理內(nèi)容:1、利用CRT顯示ADC0809轉(zhuǎn)換的數(shù)字電壓值。(1)設(shè)計ADC0809轉(zhuǎn)換器與計算機的接口電路。(2)通過兩個按鍵開關(guān)(K1、K2),用于選擇ADC0809的通道一或通道二,當(dāng)按下K1鍵或K2鍵,分別將ADC0809通道一或通道二輸入的模擬電壓進行轉(zhuǎn)換,并將轉(zhuǎn)換的結(jié)果在CRT上顯示出來,顯示格式為十進制數(shù)的形式。(3)按照自己設(shè)計的硬件電路,編寫程序,并通過微機原理綜合實驗箱進行調(diào)試。2、用八段LED數(shù)碼管顯示ADC0809轉(zhuǎn)換的數(shù)字電壓值(選做)。(1)設(shè)計ADC0809轉(zhuǎn)換器與計算機的接口電路。(2)通過兩個按鍵開關(guān)(K1、K2),用于選擇ADC0809的通道一或通道二,當(dāng)按下K1鍵或K2鍵,分別將ADC0809通道一或通道二輸入的模擬電壓進行轉(zhuǎn)換,并將轉(zhuǎn)換的結(jié)果通過八段LED數(shù)碼管顯示出來,顯示格式為十進制數(shù)的形式。原理:1、可采用中斷、查詢或軟件延時方式,對ADC0809的轉(zhuǎn)換結(jié)果進行讀取。2、將讀取的轉(zhuǎn)換結(jié)果先轉(zhuǎn)換成BCD碼,然后再將BCD碼轉(zhuǎn)換成ASCII碼。利用DOS系統(tǒng)功能調(diào)用,將結(jié)果在PC機屏幕上顯示出。3、使用電位器分壓的方法,得到雙路ADC輸入的電壓值(小于5V)。4、也可利用并行接口芯片(8279或8255)驅(qū)動八段碼LED數(shù)碼管,利用動態(tài)掃描顯示方式,將得到的結(jié)果進行顯示。要求按照自己設(shè)計的硬件電路,編寫程序,并通過微機原理綜合實驗箱進行調(diào)試。六.實驗步驟參見實驗六七.實驗電路及注意要點1、實驗電路圖見圖3-10。圖3-10ADC0809實驗電路接線圖圖3-10ADC0809實驗電路接線圖2、注意要點A/D轉(zhuǎn)換器大致有三類:①雙積分A/D轉(zhuǎn)換器,優(yōu)點是精度高,抗干擾性好,價格便宜,但速度慢;②逐次逼近法A/D轉(zhuǎn)換器,精度、速度及價格適中;③并行A/D轉(zhuǎn)換器,速度快,但價格較高。實驗用的ADC0809屬于第二類,為八位A/D轉(zhuǎn)換器,轉(zhuǎn)換時間為100us左右,其時鐘頻率小于500KHz。對0809ADC的轉(zhuǎn)換結(jié)果,可以采用三種方式讀取:(1)通過中斷的方式,EOC引腳連接8259的IRQ2上;(2)通過查詢方式,EOC引腳連接8255的任一個I/O端口;(3)通過軟件延時方式,延時100us,EOC引腳可懸空不用。電位器Wl、W2中心抽頭接IN0、IN1。電位器兩端已經(jīng)接好,不需再接,以防止電源與地之間出現(xiàn)短路。若PC機中斷源全部被系統(tǒng)占用,通過IRQ2不會產(chǎn)生中斷響應(yīng)。此時不能通過中斷方式得到ADC0809轉(zhuǎn)換結(jié)束信號EOC。八、思考題CPU與外設(shè)交換信息的方式有哪幾種。如何通過程序改變某種中斷號的中斷向量。如果把ADC0809的A、B、C分別連接到數(shù)據(jù)線的D0、D1、D2,此時如何啟動某通道進行A/D轉(zhuǎn)換。第四章附錄附錄AHKZK8688TE實驗機在串行監(jiān)控配置方式下安裝和啟動一、系統(tǒng)安裝示意圖圖4-1串行監(jiān)控配置方式圖4-1串行監(jiān)控配置方式串行監(jiān)控配置方式是利用微機向?qū)嶒灆C發(fā)送串行監(jiān)控命令,實驗機上的微處理器8088根據(jù)監(jiān)控命令做相應(yīng)的動作。在該配置方式下,實驗時用到的微處理器是實驗機上的微處理器。二、開關(guān)和連線設(shè)置1、用40芯短電纜將實驗箱上的J2和J3插座連接起來,用RS-232串行通訊電纜將微機的串行通訊口1或串行通訊口2與實驗箱右邊9芯插座J4連接起來,J1插座為空。短路套JP0~JP4插入RAM側(cè),JP5插入HKZK側(cè):K10接上短路套,K11,K12撥至RAM側(cè)。在J5上插上外接電源電纜插頭(注意插入方向),電源開關(guān)K13撥至左端,用外接電源供電。每打開電源上電后,實驗機數(shù)碼管上將顯示:HKZK8688。三、系統(tǒng)運行打開PC機,進入WINDOWS環(huán)境下,執(zhí)行HK88TE,實驗機數(shù)碼管顯示:8688,表示連機成功。此時便可在串行方式下,加載程序到實驗機上,進行運行,并且可以進行設(shè)置斷點、單步/跟蹤運行等調(diào)試功能。附錄B運行匯編語言源程序的過程由于匯編語言的固有特點,實踐環(huán)節(jié)尤為重要,上機實驗是快速掌握匯編語言程序設(shè)計的重要方法。本書的匯編語言實踐環(huán)境基于DOS平臺。編制好的匯編語言源程序,若要上機運行,必須經(jīng)過如圖4-2所示的幾個步驟:圖4-2匯編語言程序的建立過程圖4-2匯編語言程序的建立過程①調(diào)用EDIT編輯程序建立和修改匯編語言源程序。②匯編語言源程序文件必須經(jīng)過匯編,變?yōu)闄C器碼的目標(biāo)文件。③經(jīng)過連接,把程序的各個模塊連接在一起,形成可執(zhí)行文件。④運行可執(zhí)行文件。通常,一個較復(fù)雜得匯編語言源程序,不出現(xiàn)一點錯誤是不太可能的。如果發(fā)現(xiàn)運行錯誤,可以使用DEBUG跟蹤調(diào)試程序動態(tài)調(diào)試可執(zhí)行文件,檢查出錯誤后,再使用EDIT編輯程序?qū)R編語言源程序進行修改,然后再次進行匯編、連接、運行程序,直至程序運行正確為止。下面對編輯、匯編、連接、運行和調(diào)試程序的使用過程作簡要介紹。一、編輯使用EDIT編輯程序建立和編輯匯編語言源程序。啟動EDIT的常用命令格式是:>EDIT文件名.ASM;文件名可選,“”表示按回車鍵,帶有下劃線的字符均為鍵盤輸入,下同。如果啟動時不帶文件名,且該文件存在,則啟動后可以選擇File菜單中的Open命令打開該文件,然后對其編輯,最后選擇Save命令保存該文件。如果是新文件,可以直接輸入該文件名,然后選擇File菜單中的SaveAs命令保存。如果啟動時帶有文件名,即把已存在的文件調(diào)入。如果該文件不存在,則啟動后即建立一個新文件,可在該新文件名下輸入?yún)R編語言源程序。對于匯編語言源程序,其文件的擴展名必須是.ASM。在EDIT下,源程序以ASCII字符的形式存放在內(nèi)存緩沖區(qū)中。若輸入過程有錯,可以利用EDIT的命令對輸入文件進行修改,若源程序在匯編過程或運行過程中發(fā)現(xiàn)有錯,則也可用EDIT命令對源文件進行修改,這樣,在盤上就有了源文件和它的備份文件。編輯完成后,必須選擇File菜單中的Save或SaveAs命令,將該文件保存到指定得目錄(文件夾)中。然后選擇File菜單中的Exit命令退出EDIT。二、匯編匯編語言源程序經(jīng)過匯編后才可以生成目標(biāo)程序,這個過程由匯編程序?qū)崿F(xiàn)。匯編程序的基本功能是將用匯編語言編寫的源程序翻譯成機器語言的目標(biāo)代碼,還提供生成用戶的宏指令、檢查用戶源程序中的錯誤、生成源程序語句和目標(biāo)程序語句的列表等功能。為了適應(yīng)編制多模塊的大程序和調(diào)用MS-DOS支持下的公共子程序的需要,匯編以后的目標(biāo)程序中的地址部分是可浮動的相對地址,而不是可執(zhí)行的絕對地址。在DOS平臺上使用較普遍的匯編程序是MS-DOS的宏匯編(MACROassembler)MASM。匯編程序在匯編后于盤上建立三個文件,如圖4-3所示。源文件(.ASM)源文件(.ASM)匯編程序MASM.EXE列表文件(.LST)目標(biāo)文件(.OBJ)交叉索引文件(.CRF)圖4-3匯編程序的輸入/輸出文件第2個是擴展名為.OBJ的目標(biāo)程序。在此程序中,操作碼部分己變?yōu)闄C器碼,但地址操作數(shù)只是一個可浮動的相對地址,而不是在內(nèi)存中的絕對地址。第3個是擴展名為.CRF的交叉索引文件,可以對符號(symbol)進行前后對照。在匯編時,首先在DOS提示符下鍵入masm命令。匯編程序會對要不要建立上述三個文件,以及要建立時的文件名進行提問。以源程序exam.asm為例,屏幕顯示如下:注意在顯示中凡用斜體書寫的內(nèi)容是用戶從鍵盤輸入的。在調(diào)入?yún)R編程序后,先顯示版本號、版權(quán)信息,然后出現(xiàn)第一行提示,詢問要匯編的源文件名。在用戶輸入文件名(在鍵入源文件名后可省去擴展名.ASM)后回車,則出現(xiàn)第二個提示,詢問目標(biāo)程序的文件名,括號中的顯示為機器由輸入的源文件名導(dǎo)出的默認文件名。通常直接按回車鍵,表示采用默認;接著出現(xiàn)第三個提示,詢問是否要建立列表文件(默認為空),需要則鍵入文件名;最后發(fā)出第四個提示,詢問是否要建立交叉索引文件(默認為空),若要則鍵入文件名。在回答了第四個詢問后,匯編程序就對源程序進行匯編。若匯編過程中發(fā)現(xiàn)源程序中有語法錯誤,則給出錯誤的行號和錯誤信息提示,最后列出警告錯誤數(shù)及嚴(yán)重錯誤數(shù)。此時,要根據(jù)給出錯誤的行號和錯誤信息提示,分析錯誤后,再進入EDIT編輯器加以修改,改正后重新匯編,直至匯編后無錯誤為止。也可以用命令行的形式按順序?qū)λ膫€提示予以回答,其格式是:>MASM源文件名,目標(biāo)文件名,列表文件名,交叉索引文件名;其中都不必給出擴展名,匯編程序會按照默認情況使用或產(chǎn)生。若只想對部分提示給出回答,則在相應(yīng)位置用逗號隔開;若不想對剩余部分作答,則用分號結(jié)束。例如以下命令行與前邊的分行回答等效。>MASMexam,exam,exam,exam;匯編后建立的.LST文件,可用于顯示或打印,以了解匯編后的情況。三、連接程序被匯編通過后,需要經(jīng)過連接才能執(zhí)行。連接程序的功能是連接分別產(chǎn)生的目標(biāo)模塊,把相對地址變?yōu)榻^對地址。連接是由MS-DOS下的LINK程序?qū)崿F(xiàn)的,LINK程序的輸入文件和輸出文件如圖4-4所示。目標(biāo)碼文件目標(biāo)碼文件.OBJ.OBJ庫文件.OBJ.OBJ.LIB連接程序LINK.EXE.EXE.MAP可執(zhí)行文件內(nèi)存分配文件++…………目標(biāo)碼文件圖4-4LINK程序的輸入/輸出文件啟動LINK程序有二種方式;提問方式和命令行方式,假設(shè)目標(biāo)碼文件、連接程序都在同一目錄下。1、提問方式:在DOS提示符>下鍵入LINK命令,如下:>LINK就以提問方式啟動了LINK程序。在顯示版本信息后,依次提出4個問題,以Prag.OBJ為被連接的目標(biāo)文件:EE第1行詢問被連接的各目標(biāo)碼文件名(隱含的擴展名為.OBJ)。當(dāng)鍵入不止一個文件名時,中間以“+”(加號)相連,最后按回車鍵。第2行詢問連接產(chǎn)生的可執(zhí)行文件名,方括號內(nèi)為默認值。第3行詢問連接產(chǎn)生的內(nèi)存分配圖文件名,默認情況表示不產(chǎn)生內(nèi)存分配圖文件。第4行詢問欲連接的庫文件名,也可能是多個,若無庫文件連接則鍵入回車鍵即可?;卮鹜?個問題,LINK程序開始工作。2、命令行方式格式如下:>LINK目標(biāo)文件名,執(zhí)行文件名,內(nèi)存分配圖文件名,庫文件名;其中都不必給出擴展名,LINK程序會按照默認情況使用。若只想對部分提示給出回答,則在相應(yīng)位置用逗號隔開;若不想對剩余部分作答,則用分號結(jié)束。例如以下命令行與前邊的分行回答等效:>LINKProg,,,Prog;也可用簡短命令:>LINKProg;使用該命令時,若以分號結(jié)尾,則不顯示提問,直接執(zhí)行連接任務(wù)。經(jīng)過連接后的文件就可以直接運行了。而連接后,若已要求產(chǎn)生內(nèi)存分配圖文件(MAP),則可用TYPE命令將其打印出來,該文件提供了各段的名字、起始地址和長度,以及程序入口地址。例如:在DOS環(huán)境下編寫一段程序:>EDITEX1.ASM進人編輯狀態(tài)后,輸人下列程序:存盤退出EDIT狀態(tài),匯編:>MASMEX1.ASM連接:>LINKEX1.OBJ匯編和連接后,生成EXl.EXE執(zhí)行文件。即可在DOS狀態(tài)下直接運行該程序。四、運行經(jīng)過了上述過程,在盤上有了可執(zhí)行文件,則可在DOS的提示符下,直接鍵入文件名而不需要擴展名EXE或COM,MS-DOS系統(tǒng)把可執(zhí)行文件從盤上調(diào)入內(nèi)存,且立即執(zhí)行此程序。如在D盤MAS50子目錄下存在EXl.EXE執(zhí)行文件,可在該子目錄下直接運行該程序,如:D:\MAS50>EX1.EXE若在程序中,有向CRT輸出結(jié)果的語句,則結(jié)果就會顯示在CRT上(也可在打印機上打印硬拷貝)。五、調(diào)試通常,希望一個較復(fù)雜、較長、用匯編語言編寫的源程序一點錯誤也沒有,一次通過的可能性是很小的。這樣就需要調(diào)用MS-DOS支持下的動態(tài)排錯程序DEBUG調(diào)試目標(biāo)程序。DEBUG是一種使用廣泛的強有力的匯編語言程序或二進制文件的調(diào)試工具。在DEBUG的管理下,可以單步執(zhí)行程序,也可以在程序中設(shè)置斷點,可以顯示和修改指定的內(nèi)存單元和區(qū)域的內(nèi)容,也可以顯示和修改CPU內(nèi)部寄存器和標(biāo)志位的內(nèi)容。這樣將便于尋找程序中的錯誤,有關(guān)DEBUG的使用,請參閱附錄C。附錄C調(diào)試程序DEBUG的使用說明一、DEBUG程序的調(diào)用在DOS提示符下,調(diào)用DEBUG。(本附錄中,帶有下劃線的字符均為鍵盤輸入)如在D盤MAS50子目錄下存在EXl.EXE執(zhí)行文件,用戶鍵入了文件名,則DEBUG將指定的文件裝入內(nèi)存中,可對其進行調(diào)試,如:D:\MAS50>DEBUGEX1.EXE在調(diào)用DEBUG程序后,將出現(xiàn)提示符“_”,表示已進入DEBUG此時就可以調(diào)試程序了。如果未鍵入文件名,則可以用MAS50子目錄下存在的可執(zhí)行文件,用DEBUG的N命令和L命令把需要的文件調(diào)入后再進行調(diào)試。DEBUG狀態(tài)下:_NABC.EXE_L二、DEBUG程序?qū)拇嫫骱蜆?biāo)志位的初始化在調(diào)入DEBUG程序后,它把各寄存器和標(biāo)志位置成以下狀態(tài):1、段寄存器(CS,DS,ES和SS)置于自由存儲空間的底部,也就是DEBUG程序結(jié)束以后的第一個段。2、指令指針(IP)置為0100H。3、堆棧指針置于段的結(jié)尾處或裝入程序的臨時底部,取決于哪一個更低。4、余下的AX,BX,CX,DX,BP,SI和DI置為0。5、標(biāo)志位都置為清除狀態(tài)。注意:若由DEBUG調(diào)入的程序具有擴展名.EXE,則DEBUG必須進行再分配,把段寄存器、堆找指針置為程序中所規(guī)定的值。三、DEBUG的主要命令1、DEBUG命令的有關(guān)規(guī)定(1)DEBUG命令都是單字母命令,后面跟著一個或多個有關(guān)參數(shù)。多個操作參數(shù)之間用“,”或空格隔開。(2)鍵入DEBUG命令后必須接著按ENTER鍵命令才有效。(3)參數(shù)中的地址和數(shù)據(jù),均用十六進制取表示,但十六進制數(shù)據(jù)后面不要用“H”。(4)可以用Ctrl-Break鍵來停止一個命令的執(zhí)行,返回到DEBUG的提示符“_”下。(5)用Ctrl-NumLock鍵中止正在上卷的輸出行,再通過按任意鍵繼續(xù)輸出信息。2、DEBUG命令格式(1)匯編命令A(yù)格式:①A[段寄存器名:偏移地址]②A[段地址:偏移地址]③A[偏移地址]④A功能:用該命令可以將匯編語言程序直接匯編后出入指定或默認的內(nèi)存中。當(dāng)鍵入A命令后,顯示段地址和偏移地址等待用戶鍵入?yún)R編指令。每鍵入一條匯編指令回車后,自動顯示下一條指令的段地址和偏移地址,再鍵入下一條匯編指令,直到匯編語言程序全部鍵入,又顯示下一條地址時可直接鍵入回車返回到提示符“一”為止。其中①的段地址在段地址寄存器中,因此在使用該命令時自動將給出的段寄存器名中的段地址送入CS段寄存器中,③的段地址在CS中,④的段地址在CS中,偏移地址為100H。例如:用匯編語言編寫一個程序段,將十六進制0,1,2,……F的ASGII碼送入偏移地址為100H單元開始的存儲單元中,并將該十六進制數(shù)據(jù)從100H單元開始的存儲區(qū)傳送到以200H為起始地址的存儲區(qū)中。將編寫好的程序段通過A命令送入內(nèi)存并匯編,用字符串傳送指令MOVSB將數(shù)據(jù)串進行傳送。其中,SI為源串地址寄存器,DI為目的串地址寄存器;計數(shù)寄存器CX存放計數(shù)初值10H。REP為無條件重復(fù)前綴指令,以字節(jié)為傳送單位。每傳送一個字節(jié),CX中計數(shù)值減“1”,直到CX為0為止。(2)顯示內(nèi)存命令D格式:①D[段寄存器名/段地址:偏移地址]②D[段地址:偏移地址1,偏移地址2]③D功能:顯示指定內(nèi)存范圍內(nèi)的內(nèi)容。顯示的內(nèi)容為兩種形式:一種為十六進制內(nèi)容,一種為與十六進制相對應(yīng)的ASCII碼字符,對不可見字符以“.”代替。對于①、③每次顯示128個字節(jié)內(nèi)容,②顯示的字節(jié)由地址范圍來決定。若命令中有地址,則顯示的內(nèi)容從指定地址開始,若命令中無地址,如③則從上一個D命令所顯示的最后一個單元的下一個單元開始。若以前沒有使用過D命令,則以DEBUG初始化的段寄存器的內(nèi)容為起始段地址,起始偏移地址為100H,即CS:100。對于①中的地址為偏移地址,段地址為CS的內(nèi)容。對②中的地址范圍,可以指定段地址和起始偏移地址和終止偏移地址。例如:顯示起始地址為100H的內(nèi)存單元內(nèi)容為:再顯示偏移地址為100H-120H的內(nèi)容為:接著再顯示,只用D命令不鍵入地址,那么接著上次D顯示的地址開始顯示為:例如:指定數(shù)據(jù)段寄存器DS的內(nèi)容為段地址,顯示在該段內(nèi)偏移地址為100H-150H的內(nèi)容。DDS:100,150(3)修改存儲單元內(nèi)容命令E格式:①E[地址][內(nèi)容表]②E[地址]功能:①用命令所給定的內(nèi)容表去代替指定地址范圍的內(nèi)存單元內(nèi)容。②一個單元一個單元地連續(xù)修改單元內(nèi)容.其中:內(nèi)容表為一個十六進制數(shù)或一串十六進制數(shù),也可以是用單引號括起的一串字符。例如:往200H為起始地址單元存放一串十六進制數(shù),如:_E20061626364656667686970717273747576要看一看是否將這些十六進制數(shù)替換了原來單元內(nèi)容。_D2002170A47:020061626364656667686970717273747576abcdefjhipqrstuv0A47:02100304050661626364….abcd如果用一串字符來替換200H單元開始的內(nèi)容(用單引號括起部分),有:_E200‘ABCDEFGHIJKLMNOPQRETUVWXYZ’再用D命令看看內(nèi)容是否被替換:如果一個單元一個單元地修改,每修改一個單元內(nèi)容按空格鍵,再鍵入下一個單元的修改內(nèi)容,直到按回車鍵為止。如:(注:.代表空格鍵)0A47:0A47:0230FF(4)檢查和修改寄存器內(nèi)容命令R格式:①R②R[寄存器名]功能:①顯示CPU內(nèi)部所有寄存器的內(nèi)容和全部標(biāo)志位的狀態(tài)。②顯示和修改一個指定寄存器的內(nèi)容。其中,對狀態(tài)標(biāo)志寄存器FLAG按位形式顯示。顯示時,8個狀態(tài)的顯示次序和符號如表1.1所示。例如:對在DOS環(huán)境下編寫的程序,詳見23頁的舉例,將程序EXl.EXE調(diào)入,并顯示程序運行前各寄存器的初始狀態(tài):D:\MAS50>DEBUGEX1.EXE用R命令顯示各寄存器的初始狀態(tài):前面兩行顯示了CPU內(nèi)部各寄存器的內(nèi)容和標(biāo)志寄存器的全部標(biāo)志狀態(tài),最后一行顯示了EXl.EXE程序的第一條指令的地址(CS:IP)和指令的機器碼及匯編語言指令,也就是下一條即將要執(zhí)行的指令。表1-1.狀態(tài)標(biāo)志位顯示形式表1-1.狀態(tài)標(biāo)志位顯示形式也可以用R命令顯示某個寄存器的內(nèi)容:如果要顯示并修改某個寄存器內(nèi)容,如AX的內(nèi)容:顯示修改標(biāo)志寄存器的內(nèi)容:可以看到將標(biāo)志寄存器的NV改為OV,UP改為DN,修改各標(biāo)志位的次序可以任意。再用R命令看修改過的內(nèi)容是否裝入各寄存器和標(biāo)志位的每一位;==(5)反匯編命令U格式:①U[地址]②U[地址范圍]功能:①將代碼段內(nèi)指定的地址開始,將其代碼以匯編語言形式顯示,同時顯示該代碼位于內(nèi)存的地址和機器碼。②將代碼段內(nèi)指定范圍內(nèi)的代碼以匯編語言形式顯示,同時顯示該代碼位于內(nèi)存的地址和機器碼。若在命令中沒有指定地址,則以上一個U命令的最后一條指令地址的下一個單元為起始地址,若沒有輸入過U命令,則以DEBUG初始化時,CS和IP寄存器內(nèi)的值作為段地址和偏移地址。例如:將EXl.EXE文件調(diào)入DEBUG,并顯示該文件:D:\MASM50>DEBUGEX1.EXE_U0F02:0000B032MOVAL,320F02:0002B237MOVDL,370F02:000402D0ADDDL,AL0F02:000680EA30SUBDL,300F02:0009B4023MOVAH,020F02:000BCD21INT210F02:000DB44CMOVAH,4C0F02:000FCD21INT210F02:00112804SUB[SI],AL0F02:0013017408ADD[SI+08],SI0F02:001606PUSHES
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 張灣區(qū)人民醫(yī)院2026年度公開招聘專業(yè)技術(shù)人員備考題庫完整參考答案詳解
- 2025年重慶大學(xué)實驗室及設(shè)備管理處勞務(wù)派遣工作人員招聘備考題庫及一套答案詳解
- 2025年梧州市龍投人力資源有限公司招聘備考題庫帶答案詳解
- 高中生對機器人輔助物理實驗的參與度研究課題報告教學(xué)研究課題報告
- 2025年昆明市盤龍區(qū)匯承中學(xué)招聘教師備考題庫完整參考答案詳解
- 2025年北京市朝陽區(qū)三環(huán)腫瘤醫(yī)院招聘21人備考題庫完整答案詳解
- 2025年關(guān)于為山東省人民檢察院公開招聘聘用制書記員的備考題庫及答案詳解參考
- 2025年西湖大學(xué)Vita編輯部招聘工作人員備考題庫帶答案詳解
- 2025年云南開放大學(xué)第二批公開招聘人員備考題庫有答案詳解
- 2025年江蘇鹽城港控股集團有限公司招聘21人備考題庫及完整答案詳解一套
- 貴州省貴陽市2024-2025學(xué)年九年級上學(xué)期期末語文試題(含答案)
- 八年級三角形教學(xué)課件教學(xué)
- 蛇類醫(yī)療疾病
- 冠心病治療病例分享
- GB/T 19342-2024手動牙刷一般要求和檢測方法
- 生活垃圾焚燒發(fā)電廠摻燒一般工業(yè)固廢和協(xié)同處置污泥項目環(huán)評資料環(huán)境影響
- 礦區(qū)尾礦庫生態(tài)環(huán)境綜合治理與修復(fù)項目修復(fù)驗收和后期管理方案
- 北師大四年級數(shù)學(xué)上冊《總復(fù)習(xí)》課件
- 家庭農(nóng)場的商業(yè)計劃書(6篇)
- 高處安全作業(yè)培訓(xùn)
- 2023-2024學(xué)年北京市通州區(qū)數(shù)學(xué)九年級第一學(xué)期期末綜合測試試題含解析
評論
0/150
提交評論