微機(jī)原理及應(yīng)用實(shí)驗(yàn)報(bào)告_第1頁(yè)
微機(jī)原理及應(yīng)用實(shí)驗(yàn)報(bào)告_第2頁(yè)
微機(jī)原理及應(yīng)用實(shí)驗(yàn)報(bào)告_第3頁(yè)
微機(jī)原理及應(yīng)用實(shí)驗(yàn)報(bào)告_第4頁(yè)
微機(jī)原理及應(yīng)用實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí) 驗(yàn) 報(bào) 告微機(jī)原理及應(yīng)用課 程 名 稱實(shí)驗(yàn)1 debug操作實(shí)驗(yàn) 實(shí)驗(yàn)2 匯編程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)3 8253定時(shí)/計(jì)數(shù)器實(shí)驗(yàn) 實(shí)驗(yàn)4 8255 并行接口實(shí)驗(yàn)實(shí) 驗(yàn) 名 稱年 月 日 至 年 月 日實(shí) 驗(yàn) 日 期學(xué) 生 專 業(yè)學(xué) 生 學(xué) 號(hào)學(xué) 生 姓 名教 師 姓 名成 績(jī)南京理工大學(xué)機(jī)械工程學(xué)院實(shí)驗(yàn)一 debug命令及其操作一、實(shí)驗(yàn)?zāi)康? 熟練掌握debug的常用命令,學(xué)會(huì)用debug來調(diào)試程序。2 深入了解數(shù)據(jù)在存儲(chǔ)器中的存取方法及堆棧中數(shù)據(jù)的壓入與彈出。3 掌握各種尋址方法以及簡(jiǎn)單指令的執(zhí)行過程。二、實(shí)驗(yàn)要求1 實(shí)驗(yàn)前要作好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法以及對(duì)程序結(jié)果的分

2、析等。2 本實(shí)驗(yàn)要求在pc機(jī)上進(jìn)行。3 本實(shí)驗(yàn)只要求在debug調(diào)試狀態(tài)下進(jìn)行,包括匯編程序,調(diào)試程序,執(zhí)行程序。三、實(shí)驗(yàn)內(nèi)容l 實(shí)驗(yàn)內(nèi)容1:學(xué)習(xí)用debug調(diào)試工具進(jìn)行源程序的輸入、匯編、調(diào)試和執(zhí)行。實(shí)驗(yàn)報(bào)告要求:1 寫出運(yùn)行結(jié)果;2 小結(jié)debug常用命令及使用體會(huì)答:1.原文已給出(略) 2a 匯編 d顯示內(nèi)存單元內(nèi)容 e修改單元內(nèi)存內(nèi)容 g執(zhí)行命令 t單步(或多步)調(diào)試n指定文件路徑文件名(含擴(kuò)展名)u反匯編 r查看寄存器值及修改 l加載程序 w寫盤命令體會(huì):提升學(xué)習(xí)熱情和動(dòng)手能力 有助于理解代碼執(zhí)行過程l 實(shí)驗(yàn)內(nèi)容2設(shè)ax=3000h,bx=5000h,請(qǐng)編一程序段將ax的內(nèi)容和bx

3、的內(nèi)容進(jìn)行交換。請(qǐng)用堆棧作為兩寄存器交換內(nèi)容的中間存儲(chǔ)單元,用debug調(diào)試程序進(jìn)行匯編與調(diào)試。實(shí)驗(yàn)報(bào)告要求:1 寫出完成上述功能的程序段;2 單步執(zhí)行,并記錄寄存器ax, bx及堆棧指針sp的值答:a100 mov ax,3000 ; ax:3000 bx:0000 sp:ffeemov bx,5000 ;ax:3000 bx:5000 sp:ffeepush ax ;ax:3000 bx:5000 sp:ffecmov ax,bx ;ax:5000 bx:5000 sp:ffecpop bx ;ax:5000 bx:3000 sp:ffeeint 20l 實(shí)驗(yàn)內(nèi)容3設(shè)ds=當(dāng)前段地址,bx

4、=0300h,si=0002h,請(qǐng)用debug的命令將存儲(chǔ)器偏移地址300h304h連續(xù)單元裝入0ah,0bh,0ch,0dh,0eh。在debug狀態(tài)下送入下面的程序,并用單步執(zhí)行的方法,分析每條指令源地址的形成過程?當(dāng)數(shù)據(jù)傳送完畢時(shí),ax中的內(nèi)容是什么?實(shí)驗(yàn)報(bào)告要求:1 寫出源操作數(shù)的尋址方式;2 單步執(zhí)行,并記錄相關(guān)寄存器及存儲(chǔ)單元的值a100 ;給各內(nèi)存單元賦值mov di,0300 mov dx,0a mov cx,5 1oop1:movdi,dxinc diinc dx1oop loop1程序清單如下: 尋址方式和ax的內(nèi)容mov bx,0300 立即尋址mov si, 0002

5、立即尋址mov ax,bx 寄存器尋址 ax: 0300 mov ax,0304h 立即尋址 ax:0304mov ax,0304h 存儲(chǔ)器直接尋址 ax:ds:0304 內(nèi)存單元的內(nèi)容0ehmov ax,bx 寄存器間接尋址 ax:ds:0300 內(nèi)存單元的內(nèi)容0ahmov ax,0001bx 基址相對(duì)尋址 ax:ds:0301 內(nèi)存單元的內(nèi)容0bhmov ax,bxsi 基址變址尋址 ax:ds:0302 內(nèi)存單元的內(nèi)容0chmov ax,0001bxsi 基址變址尋址 ax:ds:0303內(nèi)存單元的內(nèi)容0dhl 實(shí)驗(yàn)內(nèi)容4設(shè)ax=0002h,編寫程序?qū)x的內(nèi)容乘10,要求用移位的方法完

6、成。寫出實(shí)現(xiàn)上實(shí)驗(yàn)報(bào)告要求:1 述功能的程序段;2 單步執(zhí)行程序,記錄每條指令的機(jī)器碼及相關(guān)寄存器的內(nèi)容注意:左移指令用shl,而不能使用sal a100mov ax,2 機(jī)器碼:b80200 ax:0002 dx:0000 cl:00mov dx,0 機(jī)器碼:ba0000 ax:0002 dx:0000 cl:00shl ax,1 機(jī)器碼:d1e0 ax:0004 dx:0000 cl:00mov dx,ax 機(jī)器碼: 01d0 ax:0004 dx:0004 cl:00 mov cl,2 機(jī)器碼:b102 ax:0004 dx:0004 cl:02shl ax,cl 機(jī)器碼:d3e0 ax

7、:0010 dx:0004 cl:02 add ax,dx 機(jī)器碼:01d0 ax:0014 dx:0004 cl:02int 20 機(jī)器碼:cd20 ax:0014 dx:0004 cl:02實(shí)驗(yàn)二 簡(jiǎn)單程序的編寫及匯編連接一、 實(shí)驗(yàn)?zāi)康? 熟練掌握編寫匯編語(yǔ)言源程序的基本方法和基本框架。2 學(xué)會(huì)編寫順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的匯編程序,掌握宏定義與宏調(diào)用的方法。3 掌握程序中數(shù)據(jù)的產(chǎn)生與數(shù)輸出的方法。4 熟悉建立源文件,進(jìn)行匯編和連接的全過程,并對(duì)程序進(jìn)行調(diào)試。二、 實(shí)驗(yàn)要求1 實(shí)驗(yàn)前準(zhǔn)備 分析題目,將程序中的原始數(shù)據(jù)、中間結(jié)果和最終結(jié)果的存取方式確定好。 寫出算法或畫出流程圖。 寫出源

8、程序。 對(duì)程序中的結(jié)果進(jìn)行分析,并準(zhǔn)備好上機(jī)調(diào)試的過程。2 本實(shí)驗(yàn)要求在pc機(jī)上進(jìn)行。3 匯編過程中出現(xiàn)問題,可用debug進(jìn)行調(diào)試。三、 實(shí)驗(yàn)內(nèi)容1 實(shí)驗(yàn)內(nèi)容1 編輯源程序(參考程序見下),建立 .asm文件; 用masm程序匯編,生成 .obj文件;查看 .lst文件的內(nèi)容 用link程序鏈接,生成 .exe文件; 使用debug命令將 .exe文件調(diào)進(jìn)內(nèi)存,執(zhí)行后查看程序運(yùn)行結(jié)果; 使用debug命令,檢查各段在內(nèi)存當(dāng)中分配情況。參考程序:; exercize21data segment org 0200h buffer dw 0, 1, -5, 10, 256, -128, -100,

9、 45, 6, 3, dw -15,-67, 39, 4, 20, -1668, -32766, 32765, -525,dw 300 count equ ($-buffer)/2 max dw ?data endsstack segment stack stack db 100 dup (s)stack endscode segment para code assume cs:code, ds:data, ss:stacksta proc far push ds xor ax, ax push ax mov ax, data mov ds, ax lea si, buffer mov cx,

10、 count dec cx mov ax, sichkmax: add si, 2 cmp si, ax jle next mov ax, sinext: loop chkmax mov max, ax retsta endpcode ends end sta實(shí)驗(yàn)報(bào)告要求:1 小結(jié)匯編語(yǔ)言源程序的編譯及連接過程;2 記錄數(shù)據(jù)段在程序執(zhí)行前后的內(nèi)容3 寫出程序調(diào)試中出現(xiàn)的問題及解決方法;答:1 把待匯編的程序放在存放匯編、鏈接程序的文件夾里打開匯編程序輸入待匯編的程序名字 ,以默認(rèn)配置生成obj文件,再打開鏈接程序輸入待鏈接的程序名字以默認(rèn)配置生成exe文件2 執(zhí)行前后buff數(shù)據(jù)數(shù)據(jù)塊不變 m

11、ax執(zhí)行前數(shù)據(jù)為0000h執(zhí)行后為7ffdh3 很順利作業(yè):編程并且在計(jì)算機(jī)上調(diào)試。用匯編語(yǔ)言編寫一個(gè)加法程序:1234+5678請(qǐng)用ascii碼的形式將加數(shù)與被加數(shù)存放在數(shù)據(jù)區(qū)data1和data2中,并將相加的結(jié)果顯示輸出。假設(shè)有一組數(shù)據(jù):5,-4,0,3,100,-51,請(qǐng)編一程序,判斷每個(gè)數(shù)是否大于0,等于0,還是小于0,并輸出判斷結(jié)果。即:1當(dāng)x0y = 0當(dāng)x=0-1當(dāng)x0sstack segment dw 32 dup(?)sstack endsdata segment data1 db 1234 data2 db 5678 data3 db 4 dup(?)data endsc

12、ode segment assume cs:code,ss:sstack,ds:datasta:push ds xor ax,ax push ax mov ax,data mov ds,ax lea si,data1 lea di,data2 lea bx,data3 mov al,si+3 mov ah,di+3 and al,0fh and ah,0fh add al,ah or al,30h mov bx+3,al mov al,si+2 mov ah,di+2 and al,0fh and ah,0fh adc al,ah or al,30h mov bx+2,al mov al,si

13、+1 mov ah,di+1 and al,0fh and ah,0fh adc al,ah or al,30h mov bx+1,al mov al,si mov ah,di and al,0fh and ah,0fh adc al,ah or al,30h mov bx,al mov cx,4 mov ah,2ha1:mov dl,bx int 21h inc bx loop a1 retcode ends end stasstack segment stack stack dw 32 dup(?)sstack endsdata segment buff db 12,-23,5,-4,0,

14、3,100,-51,3,-45,9,2 data endscount equ $-buffcode segment assume ss:sstack,ds:data,cs:codestart prog far push ds xor ax,ax push ax mov ax,data mov ds,ax lea bx,buff lea si,count mov cx,siloop1:mov al,bx cmp al,0 jz aa1 and al,80h jz aa2 mov ah,2 mov dl,2dh int 21h aa: inc bx loop loop1 jmp ov aa1:mo

15、v ah,2 mov dl,30h int 21h jmp aa aa2:mov ah,2 mov dl,31h int 21h jmp aa ov:retstart endpcode ends end start 實(shí)驗(yàn)三 8254定時(shí)/計(jì)數(shù)器應(yīng)用實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、掌握8254的工作方式及應(yīng)用編程;2、掌握8254典型應(yīng)用電路的接法。二、實(shí)驗(yàn)設(shè)備 pc機(jī)一臺(tái),td-pie實(shí)驗(yàn)裝置一套,示波器一臺(tái)。三、實(shí)驗(yàn)內(nèi)容 1、計(jì)數(shù)應(yīng)用實(shí)驗(yàn)。編寫程序,應(yīng)用8254的計(jì)數(shù)功能,使用單次脈沖模擬計(jì)數(shù),使每當(dāng)按動(dòng)kk1 +5次后,產(chǎn)生一次計(jì)數(shù)中斷,并在屏幕上顯示一個(gè)字符m。 2、定時(shí)應(yīng)用實(shí)驗(yàn)。編寫程序,應(yīng)用82

16、54的定時(shí)功能,產(chǎn)生一個(gè)1 ms的方波。1、計(jì)數(shù)應(yīng)用實(shí)驗(yàn)編寫程序,將8254的計(jì)數(shù)器0設(shè)置為方式3,計(jì)數(shù)值為十進(jìn)制數(shù)4,用單次脈沖kk 1+作為clk0時(shí)鐘,out0連接mir7,每當(dāng)kk1+按動(dòng)5次后產(chǎn)生中斷請(qǐng)求,在屏幕上顯示字符m。實(shí)驗(yàn)步驟:(1) 實(shí)驗(yàn)接線如圖4-2所示;(2) 編寫實(shí)驗(yàn)程序,經(jīng)編譯、鏈接無誤后裝入系統(tǒng);(3) 運(yùn)行程序,按動(dòng)kk1+產(chǎn)生單次脈沖,觀察實(shí)驗(yàn)現(xiàn)象;(4) 改變計(jì)數(shù)值,驗(yàn)證8254的計(jì)數(shù)功能。圖4.2 8254計(jì)數(shù)應(yīng)用實(shí)驗(yàn)接線圖實(shí)驗(yàn)程序清單:a8254 equ 06c0h;8254計(jì)數(shù)器0的端口地址b8254 equ 06c2h;8254計(jì)數(shù)器1的端口地址c8

17、254 equ 06c4h;8254計(jì)數(shù)器2的端口地址con8254 equ 06c6h;8254控制字寄存器的端口地址sstack segment stackdw 32 dup(?)sstack endscode segmentassume cs:code, ss:sstackstart : push dsmov ax, 0000hmov ds,axlea ax,irq7mov si,3chmov si,axmov ax,seg irq7mov si+2,axclipop ds;初始化主片8259,其端口地址為20h和21hmov al,11hout 20h,al;icw1mov al,08

18、hout 21h,al;icw2mov al,04hout 21h,al;icw3mov 21h,01hout 21h,al;icw4mov al,6fh;ocw1out 21h,al;初始化8254mov dx,con8254mov al,_11h_;計(jì)數(shù)器0,方式0out dx,almov dx,a8254mov al,_04h_;給計(jì)數(shù)器0送初值out dx,alstiaa1: jmp aa1;中斷服務(wù)程序irq7: mov ax,014dhint 10h;顯示字符mmov ax,0120hint 10hmov al,_20h_out _20h_,al;中斷結(jié)束命令iretcode en

19、ds end segment2、定時(shí)應(yīng)用實(shí)驗(yàn) 編寫程序,將8254的計(jì)數(shù)器0設(shè)置為方式3,用信號(hào)源1mhz作為clk0時(shí)鐘,out0輸出波形為1 ms方波。實(shí)驗(yàn)步驟:(1)接線圖如圖4-3所示;(2)根據(jù)實(shí)驗(yàn)內(nèi)容,編寫實(shí)驗(yàn)程序,經(jīng)編譯、鏈接無誤后裝入系統(tǒng);(3)運(yùn)行實(shí)驗(yàn)程序,用示波器測(cè)試out0輸出,驗(yàn)證程序功能。圖4.3 8254定時(shí)應(yīng)用實(shí)驗(yàn)接線圖實(shí)驗(yàn)程序清單a8254 equ 06c0hb8254 equ 06c2hc8254 equ 06c4hcon8254 equ 06c6hsstack segment stackdw 32 dup(?)sstack endscode segmenta

20、ssume cs:codestart:mov dx,con8254 mov al,_37h_;8254控制字,計(jì)數(shù)器0,方式3 out dx,al mov dx,a8254mov al,_63h_;給計(jì)數(shù)器0送初值out dx,almov al,_09h_out dx,alaa1: jmp aa1code ends end start六、思考題1、在將計(jì)數(shù)初值賦給8254后,馬上就可以啟動(dòng)并進(jìn)行定時(shí)或計(jì)數(shù)嗎?答:不是,計(jì)數(shù)的開始還得看門控信號(hào),在寫入初值后若門控信號(hào)有效(軟件觸發(fā)為高電平有效,硬件觸發(fā)為上升沿有效)則開始計(jì)數(shù),否則等待有效門控信號(hào)的到來才開始計(jì)數(shù)2、若clk0輸入1.925mh

21、z的時(shí)鐘,能否在out0實(shí)現(xiàn)輸出30ms的定時(shí)脈沖?答:30*1925=5775065535 所以用二進(jìn)制寫初值方式可以實(shí)現(xiàn),若用十進(jìn)制方式寫初值則不能實(shí)現(xiàn)(十進(jìn)制最大計(jì)數(shù)初值為0,即10000)實(shí)驗(yàn)四 8255并行接口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?1、學(xué)習(xí)并掌握8255的工作方式及其應(yīng)用; 2、掌握8255典型應(yīng)用電路的接法。二、實(shí)驗(yàn)設(shè)備 pc機(jī)一臺(tái),td-pite實(shí)驗(yàn)裝置一套。三、實(shí)驗(yàn)內(nèi)容1、基本輸入輸出實(shí)驗(yàn)。本實(shí)驗(yàn)系統(tǒng)中,8255的端口地址分別為0640h,0642h,0644h以及0646h。編寫程序,使8255的a口為輸入,接撥動(dòng)開關(guān),b口為輸出,接發(fā)光二極管;要求只要開關(guān)撥動(dòng),發(fā)光二極管的顯示

22、就發(fā)生相應(yīng)改變。2、流水燈顯示實(shí)驗(yàn)。編寫程序,使8255的a口和b口均為輸出,數(shù)據(jù)燈d7d0由左向右,每次僅亮一個(gè)燈,循環(huán)顯示,d15d8與d7d0正相反,由右向左,每次僅點(diǎn)亮一個(gè)燈,循環(huán)顯示。四、實(shí)驗(yàn)原理圖5.1 8255內(nèi)部結(jié)構(gòu)及外部引腳圖 并行接口是以數(shù)據(jù)的字節(jié)為單位與i/o設(shè)備或被控制對(duì)象之間傳遞信息。cpu和接口之間的數(shù)據(jù)傳送總是并行的,即可以同時(shí)傳遞8位、16位或32位等。8255可編程外圍接口芯片是intel公司生產(chǎn)的通用并行i/o接口芯片,它具有a, b, c三個(gè)并行接口,用+5 v單電源供電,能在以下三種方式下工作:方式0基本輸入/輸出方式、方式1選通輸入/輸出方式、方式2雙

23、向選通工作方式。8255的內(nèi)部結(jié)構(gòu)及引腳如圖5-1所示,8255工作方式控制字和c口按位置位/復(fù)位控制字格式如圖5-2所示。五、實(shí)驗(yàn)步驟1、基本輸入輸出實(shí)驗(yàn) 本實(shí)驗(yàn)使8255端口a工作在方式0并作為輸入口,端口b工作在方式0并作為輸出口。用一組開關(guān)信號(hào)接入端口a,端口b輸出線接至一組發(fā)光二極管上,然后通過對(duì)8255芯片編程來實(shí)現(xiàn)輸入輸出功能。具體實(shí)驗(yàn)步驟如下述: 圖5.2 8255控制字格式 (1) 實(shí)驗(yàn)接線圖如圖5-3所示,按圖連接實(shí)驗(yàn)線路圖; (2) 編寫實(shí)驗(yàn)程序,經(jīng)編譯、連接無誤后裝入系統(tǒng);圖5-3 8255基本輸入輸出實(shí)驗(yàn)接線圖 (3) 運(yùn)行程序,改變撥動(dòng)開關(guān),同時(shí)觀察led顯示,驗(yàn)證程序功能。實(shí)驗(yàn)程序清單sstack segment stack dw 32 dup (?

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論