微機實驗指導書(最終版)_第1頁
微機實驗指導書(最終版)_第2頁
微機實驗指導書(最終版)_第3頁
微機實驗指導書(最終版)_第4頁
微機實驗指導書(最終版)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、試驗一 熟悉匯編環(huán)境以及初級程序的編寫與調(diào)試一 實驗目的1熟悉掌握DEBUG的常用命令,學會用DEBUG調(diào)試程序。2了解數(shù)據(jù)在存儲器中的存取方法以及堆棧中數(shù)據(jù)的壓入與彈出。3掌握各種尋址方法及簡單指令的執(zhí)行過程。二 試驗要求1實驗前要做好充分準備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對程序結(jié)果的分析。2本實驗要求在PC機上進行。3本實驗只要求在DEBUG調(diào)試程序狀態(tài)下進行,包括匯編程序、調(diào)試程序、執(zhí)行程序。三 實驗內(nèi)容1熟悉DEBUG的常用命令(1)匯編命令A 格式:A 【段寄存器名】:【偏移地址】 A 【段地址】:【偏移地址】 A 【偏移地址】 A功能:用該命令可以將匯編語言程序直接匯

2、編進入內(nèi)存。當鍵入A命令后,顯示段地址和偏移地址等待用戶鍵入?yún)R編指令,每鍵入一條匯編指令回車后,自動顯示下一條指令的段地址和偏移地址,再鍵入下一條匯編指令,直到匯編語言程序全部鍵入,又顯示下一條地址時可直接鍵入回車回到提示符“”為止。其中的段地址在段地址寄存器中,因此在使用該命令時必須將段地址寄存器送入段地址,的段地址在CS中,的段地址在CS中,偏移地址為100H。(2)執(zhí)行程序命令G和單步執(zhí)行程序T功能:用該G命令可直接執(zhí)行匯編語言程序;用T命令可單步執(zhí)行匯編語言程序并顯示當前寄存器內(nèi)容(3)顯示內(nèi)存命令D格式:D 地址 D 地址范圍 D功能:顯示指定內(nèi)存范圍的內(nèi)容。(4)修改存儲單元內(nèi)容命

3、令E格式:E 地址內(nèi)容表 E地址功能:用命令所給定的內(nèi)容表去代替指定地址范圍的內(nèi)存單元內(nèi)容。 一個單元一個單元的連續(xù)修改單元內(nèi)容。其中:內(nèi)容表為一個十六進制數(shù)或一串十六進制數(shù),也可以是用單引號括起的一串字符。(5)檢查和修改寄存器內(nèi)容命令R 格式:R R 寄存器名 功能:顯示CPU內(nèi)部所有寄存器的內(nèi)容和全部標志位的狀態(tài)。 顯示和修改一個指定寄存器的內(nèi)容和標志位的狀態(tài)。2. 設(shè)堆棧指針SP=2000H,AX=3000H,BX=5000H;請編一程序段將AX的內(nèi)容和BX的內(nèi)容進行交換。請用堆棧作為兩寄存器交換內(nèi)容的中間存儲單元,用DEBUG調(diào)試程序進行匯編與調(diào)試。編程提示:將兩個寄存器的內(nèi)容進行交

4、換時,必須有一個中間寄存器才能進行內(nèi)容的交換。如果用堆棧作為中間存儲單元,必須遵循“先進后出”的原則。3. 設(shè)DS=當前段地址,BX=0300H,SI=0002H;請用DEBUG的命令將存儲器偏移地址0300H0304H連續(xù)單元順序裝入0AH,0H,0CH,0DH,0EH。在DEBUG狀態(tài)下送入下面程序,并用單步執(zhí)行的方法,分析每條指令源地址的形成過程,當數(shù)據(jù)傳送完畢時,AX中的內(nèi)容是什么。程序清單如下:MOV AX,BXMOV AX,0304HMOV AX,0304HMOV AX,BXMOV AX,0001BXMOV AX,BXSIMOV AX,0001BXSIHLT編程提示:(1)其中數(shù)據(jù)

5、段寄存器中的段地址為進入DEBUG狀態(tài)后系統(tǒng)自動分配的段地址。(2)寄存器初值可以在DEBUG狀態(tài)下,用命令裝入,也可以在程序中用指令來完成。(3)在執(zhí)行程序前,可用E命令將偏移地址300H304H送入0AH,0BH,0CH,0DH,0EH。(4)用T命令執(zhí)行程序,可進行單步跟蹤執(zhí)行,每執(zhí)行一條指令就可以看到各寄存器的狀態(tài),也可以用R命令直接調(diào)出寄存器,來檢驗各寄存器內(nèi)容是否正確。四 實驗報告1. 用實驗數(shù)據(jù)記錄表記錄程序清單和單步執(zhí)行結(jié)果說明:程序清單需詳細記錄,單步執(zhí)行結(jié)果只需記錄有變化或有操作的寄存器值,實驗內(nèi)容3還需記錄是何種尋址方式。2. 實驗報告需包括詳細的實驗目的、實驗要求、實驗

6、內(nèi)容和實驗數(shù)據(jù)記錄表3. 記錄上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試過程中所遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析,對執(zhí)行結(jié)果進行分析。試驗二 加法及判斷程序的編寫與調(diào)試實驗一 實驗目的1. 熟練掌握編寫匯編語言源程序的基本方法和基本框架。2. 學會編寫順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的方法。3. 掌握程序中數(shù)據(jù)的產(chǎn)生與輸入輸出的方法。二 實驗要求1實驗前準備 (1)分析題目,將程序中的原始數(shù)據(jù)、中間結(jié)果和最終結(jié)果的存取方式確定好。(2)寫出算法或畫出流程圖。(3)寫出源程序。(4)對程序中結(jié)果進行分析,并準備好上機調(diào)試與用匯編程序及匯編調(diào)試的過程。2. 本實驗要求在PC機上進行。3.

7、匯編過程中出現(xiàn)問題,可用DEBUG進行調(diào)試。三 實驗內(nèi)容1. 設(shè)AX=0002H,編寫一個程序段將AX的內(nèi)容乘以10,要求用移位的方法完成。編程提示:(1)用移位的方法完成某些乘法運算,是較為常見的方法,操作數(shù)左移一位為操作數(shù)乘2運算。(2)算式2×10的程序流程圖如圖2-1所示。(3)注意計數(shù)寄存器CX的使用(3)在DEBUG環(huán)境下完成該程序并用T命令單步跟蹤執(zhí)行程序。圖2-1 流程圖2. 假設(shè)有一組數(shù)據(jù):5,-4,0,3,100,-51,請編寫一程序,判斷:每個數(shù)大于0,等于0,還是小于0;并輸出其判斷結(jié)果。即:1 當x>0y=0 當x=01 當x<0編程提示:(1)

8、首先將原始數(shù)據(jù)(5,-4,0,3,100,-51)裝入起始地址為xx的字節(jié)存儲單元中。(2)將判斷結(jié)果以字符串的形式存放在數(shù)據(jù)區(qū)中,以便在顯示輸出時調(diào)用。(3)其中判斷部分可采用CMP指令,得到一個分支結(jié)構(gòu),分別輸出“Y=0”,“Y=+1”,“Y=-1”。(4)注意對有符號數(shù)控制轉(zhuǎn)移指令的使用(JGE,JG,JE,JL等)(5)程序中存在一個循環(huán)結(jié)構(gòu),循環(huán)6次,調(diào)用6次分支結(jié)構(gòu)后結(jié)束。(6)在masm for windows環(huán)境下完成該程序(7)參考程序流程圖如圖2-2所示。圖2-2 參考程序流程圖(8)參考程序清單如下DATAS SEGMENT ;此處輸入數(shù)據(jù)段代碼 data1 db 05h

9、,0fch,00h;補充數(shù)據(jù)3,100,-51 Y1 db 'Y=1',0dh,0ah,'$' ;定義Y2存放Y=0 ;定義Y3存放Y=-1DATAS ENDSSTACKS SEGMENT ;此處輸入堆棧段代碼STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX ;此處輸入代碼段代碼 ;將data1偏移地址送SI mov ax,0000h ;將循環(huán)次數(shù)送計數(shù)寄存器loop1: ;取data1數(shù)據(jù)到AL以比較 ;將data1數(shù)據(jù)與0進行比較

10、;大于跳轉(zhuǎn)到NEXT1 ;等于跳轉(zhuǎn)到NEXT2 MOV DX,OFFSET Y3 JMP OUTPUTNEXT1: ;Y1輸出部分NEXT2:;Y2輸出部分OUTPUT:MOV AH,09HINT 21H;SI自加;跳轉(zhuǎn)到下一位數(shù) MOV AH,4CH INT 21HCODES ENDS END START四 實驗報告1. 用實驗數(shù)據(jù)記錄表記錄程序清單和程序執(zhí)行結(jié)果。說明:程序清單需詳細記錄,并盡可能地加上注釋 2. 實驗報告需包括詳細的實驗目的、實驗要求、實驗內(nèi)容、流程圖和實驗數(shù)據(jù)記錄表。3. 記錄上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試過程中所遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析

11、,對執(zhí)行結(jié)果進行分析。實驗三8253定時器 / 計數(shù)器一、實驗目的 學會8253芯片和微機接口的原理和方法。. 掌握8253定時器/計數(shù)器的工作方式和編程原理。二、實驗內(nèi)容 用8253的0通道工作在方式3,產(chǎn)生方波。圖3-1 實驗接線圖8253芯片介紹8253是一種可編程定時/計數(shù)器,有三個十六位計數(shù)器,其計數(shù)頻率范圍為0-2MHz, 用+5V單電源供電。 8253的功能用途:延時中斷實時時鐘可編程頻率發(fā)生器數(shù)字單穩(wěn)事件計數(shù)器復雜的電機控制器二進制倍頻器 28253的六種工作方式:方式0:計數(shù)結(jié)束中斷方式3:方波頻率發(fā)生器方式l:可編程頻率發(fā)生 方式4:軟件觸發(fā)的選通信號方式2:頻率發(fā)生器 方

12、式5:硬件觸發(fā)的選通信號三、實驗步驟 1 按圖3-1連好實驗線路 (使用計數(shù)器0) (1)8253的GATE0接+5V。 (2)8253的CLK0插孔接分頻器74LS393(左下方)的T6插孔,分頻器的頻率源為1.8432MHZ,T1.8432MHZ。(3) 8253的OUT0接L12編寫實驗程序 (注:8253在實驗箱中分配的地址為0040H0043H,8253對應(yīng)0043H,計數(shù)器0對應(yīng)0040H)編程提示如下:(注意將文件保存為.asm文件)CODE SEGMENT ASSUME CS:CODEORG 1290H START:JMP TCONTTCONT:;寫入控制字(計數(shù)器0,工作方式

13、);寫入初值低8位到計數(shù)器0,用于調(diào)整方波頻率;寫入初值高8位到計數(shù)器0,用于調(diào)整方波頻率CODE ENDSEND START3打開實驗箱電源,在86PCI軟件環(huán)境下調(diào)試程序,步驟為編譯-加載-連續(xù)運行。(注:如程序有語法錯誤編譯會比較慢,請耐心?。┧?實驗報告1. 用實驗數(shù)據(jù)記錄表記錄程序清單和程序執(zhí)行結(jié)果。說明:程序清單需詳細記錄,并盡可能地加上注釋 2. 實驗報告需包括詳細的實驗目的、實驗要求、實驗內(nèi)容、,流程圖、硬件結(jié)構(gòu)圖和實驗數(shù)據(jù)記錄表。3. 記錄上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試過程中所遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析,對執(zhí)行結(jié)果進行分析。實驗四8255A并行口

14、實驗一、實驗目的 掌握8255A和微機接口方法。掌握8255A的工作方式和編程原理。二、實驗內(nèi)容 用8255PA口控制PB口。圖4-1 實驗接線圖8255A芯片簡介:8255A可編程外圍接口芯片是INTEL公司生產(chǎn)的通用并行接口芯片,它具有A、B、C三個并行接口,用+5V單電源供電,能在以下三種方式下工作: 方式0:基本輸入/ 輸出方式 方式l:選通輸入/ 輸出方式 方式2:雙向選通工作方式使8255A端口A工作在方式0并作為輸入口,讀取Kl-K8開關(guān)量,PB口工作在方式0作為輸出口,控制L1-L8發(fā)光二極管,采用無條件傳送方式傳送數(shù)據(jù)。三、實驗步驟 按圖4-1連好實驗線路(1)8255A芯片A口的PA0-PA7依次和開關(guān)量輸入Kl-K8相連。(2)8255A芯片B口的PB0-PB7依次接Ll-L8。按圖4-2編寫實驗程序 (注:8253在實驗箱中分配的地址為0FF28H0FF2BH,8255A對應(yīng)0FF2BH,PA口對應(yīng)0FF28H,PB口對應(yīng)0FF29H)圖4-2 8255實驗流程圖編程提示如下:(注意將文件保存為.asm文件)CODE SEGMENT ASSUME CS:CODEORG 11B0H START:;寫入控制字(工作方式0,PA口輸入,PB口輸出)BG:;讀取PA口開關(guān)量到AL;將讀取的PA口開關(guān)量信號送PB口輸出 ;無條件傳送(直接傳送)CODE ENDS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論