微機接口實驗報告_第1頁
微機接口實驗報告_第2頁
微機接口實驗報告_第3頁
微機接口實驗報告_第4頁
微機接口實驗報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上武漢大學微機接口實驗報告 專心-專注-專業(yè)目錄實驗一 數(shù)據(jù)傳送一、 實驗目的1 熟悉8086指令系統(tǒng)的數(shù)據(jù)傳送指令及8086的尋址方式。2 利用EMU調(diào)試工具來調(diào)試匯編語言程序。二、 實驗預習要求1 復習8086指令系統(tǒng)中的數(shù)據(jù)傳送類指令和8086的尋址方式。2 預習EMU的使用方法:3 按照題目要求預先編寫好實驗中的程序段。三、 實驗任務(wù)1通過下述程序段的輸入和執(zhí)行來熟悉EMU的使用,并通過顯示器屏幕觀察程序的執(zhí)行情況。練習程序段如下: MOV BL,08H MOV CL,BL MOV AX,03FFH MOV BX,AXMOV DS:0020H,BX 2用以下程序

2、段將一組數(shù)據(jù)壓入(PUSH)堆棧區(qū),然后通過不同的出棧順序出棧,觀察出棧后數(shù)據(jù)的變化情況。壓棧程序段如下: MOV AX,0102H MOV BX,0304H MOV CX,0506H MOV DX,0708H PUSH AX PUSH BX PUSH CX PUSH DX出棧段程序:POP CXPOP DX POP BX POP AX RET3. 指出下列指令的錯誤并加以改正,上機驗證之。(1) MOV BX,SI存儲器操作數(shù)不可直接傳遞,改為MOV BX, SI(2) MOV AH,BX操作數(shù)字長不相同,改為MOV AH,BH(3) MOV AX,SIDI基址変址尋址時,不允許兩變址寄存器

3、組合在一起,改為MOV AX,BXDI(4) MOV BYTE PTRBX,2000H字長不同,改為MOV WORD PTRBX,2000H(5) MOV CS,AX段寄存器CS內(nèi)容不通過MOV指令改寫(6) MOV DS,2000H不能用立即數(shù)直接給段寄存器賦值,改為MOV AX, 2000H MOV DS, AX5. 將DS:1000H字節(jié)存儲單元中的內(nèi)容送到DS:2020H單元中存放。試分別用8086的直接尋址、寄存器間接尋址、變址尋址、寄存器相對尋址傳送指令編寫程序段,并上機驗證結(jié)果。(1)直接尋址MOV AX , 1000HMOV 2010H,AX(2)寄存器間接尋址MOV BX,1

4、000HMOV AX, BXMOV 2020H, AX(3)變址尋址MOV SI,1000HMOV AX, SIMOV 2020H, AX(4)寄存器相對尋址MOV AX,1000HMOV BX,1000HMOV 1020HBX ,AX6. 設(shè)AX寄存器中的內(nèi)容為1111H,BX寄存器中的內(nèi)容為2222H,DS:0010H單元中的內(nèi)容為3333H。將AX寄存器中的內(nèi)容與BX寄存器中的內(nèi)容交換,然后再將BX寄存器中的內(nèi)容與DS:0010H單元中的內(nèi)容進行交換。試編寫程序段,并上機驗證結(jié)果。MOV AX,1111HMOV BX,2222HMOV 0010H,3333HMOV DX,BXMOV BX

5、,AXMOV AX,DXMOV DX,BXMOV BX, 0010HMOV 0010H,DX7. 設(shè)(DS)1000H,(ES)2000H,有關(guān)存儲器的內(nèi)容如圖1.5所示。要求將DS段的內(nèi)容傳送到AX寄存器,ES段的內(nèi)容傳送到BX寄存器,試編寫程序段。MOV 1000H,0EEFFHMOV ES:2000H,0CCDDHMOV AX,1000HMOV BX,ES:2000H四、實驗報告要求小結(jié)EMU的使用方法:1.首先選擇是建立.COM 文件還是.EXE文件。這取決于是要編寫運行一個程序段還是可執(zhí)行程序。本節(jié)均是驗證程序段。故采用.COM文件。實驗二 算術(shù)邏輯運算及移位操作一、 實驗目的1熟悉

6、算術(shù)邏輯運算指令和移位指令的功能。2了解標志寄存器各標志位的意義和指令執(zhí)行對它的影響。二、 實驗預習要求1復習8086指令系統(tǒng)中的算術(shù)邏輯類指令和移位指令。2按照題目要求在實驗前編寫好實驗中的程序段。三、 實驗任務(wù)1 實驗程序段及結(jié)果表格如表1.2: 標志位CFZFSFOFPFAF程序段1:MOV AX, 1018HMOV SI, 230AHADD AX, SIADD AL, 30HMOV DX, 3FFHADD AX,BXMOV 20H, 1000HADD 20H, AXPUSH AXPOP BX000000000000000000000011000000000000000000000000

7、000000000000000000程序段2:MOV AX, 0A0AHADD AX, 0FFFFHMOV CX, 0FF00HADC AX, CXSUB AX, AXINC AXOR CX, 0FFHAND CX, 0F0FHMOV 10H, CX000000000000100011100011100010010010000000001010000010000010程序段3: MOV BL, 25HMOV BYTE PTR10H, 4MOV AL, 10HMUL BL000000000000000000000000000000程序段4:MOV WORD PTR10H,80HMOV BL, 4

8、MOV AX, 10HDIV BL000000000000000000000000000000程序段5:MOV AX, 0DEC AXADD AX, 3FFFHADD AX, AXNOT AXSUB AX, 3OR AX, 0FBFDHAND AX, 0AFCFHSHL AX,1RCL AX,1000000001011100001000011000011001010001000001000100110112用BX寄存器作為地址指針,從BX所指的內(nèi)存單元(0010H)開始連續(xù)存入三個無符號數(shù)(10H、04H、30H),接著計算內(nèi)存單元中的這三個數(shù)之和,和放在0013H單元中,再求出這三個數(shù)之積,

9、積放0014單元中。寫出完成此功能的程序段并上機驗證結(jié)果。程序如下:MOV BX,0010HMOV BX,10HMOV 0001HBX,04HMOV 0002HBX,30HMOV AL,BXADD AL,0001HBXADD AL,0002HBXMOV 0003HBX,ALMOV AL,BLMUL 0001HBXMUL 0002HBXMOV 0004HBX,AX3寫出完成下述功能的程序段。上機驗證你寫出的程序段,程序運行的最后結(jié)果(AX)(1) 傳送15H到AL寄存器;(2) 再將AL的內(nèi)容乘以2;(3) 接著傳送15H到BL寄存器;(4) 最后把AL的內(nèi)容乘以BL的內(nèi)容。程序如下:MOV A

10、L,15HMOV DX,2MUL DXMOV BL,15HMUL BLRET4寫出完成下述功能的程序段。上機驗證你寫出的程序段,程序運行后的商?(1) 傳送數(shù)據(jù)2058H到DS:1000H單元中,數(shù)據(jù)12H到DS:1002H單元中;(2) 把DS:1000H單元中的數(shù)據(jù)傳送到AX寄存器;(3) 把AX寄存器的內(nèi)容算術(shù)右移二位;(4) 再把AX寄存器的內(nèi)容除以DS:1002H字節(jié)單元中的數(shù);(5) 最后把商存入字節(jié)單元DS:1003H中。程序如下:MOV 1000H,2058HMOV 1002H,12HMOV AX,1000HMOV CL,2SAR AX,CLDIV 1002HMOV 1003H

11、,ALRET5下面的程序段用來清除數(shù)據(jù)段中從偏移地址0010H開始的12個字存儲單元的內(nèi)容(即將零送到這些存儲單元中去)。(1) 將第4條比較指令語句填寫完整(劃線處)。 MOV SI,0010H NEXT: MOV WORD PTRSI,0 ADD SI,2 CMP SI, (填寫18) JNE NEXT HLT (2) 假定要按高地址到低地址的順序進行清除操作(高地址從0020H開始),則上述程序段應如何修改?程序如下:MOV SI,0020HNEXT: MOV WORD PTRSI,0SUB SI,2CMP SI,18 JNE NEXTHLT6 輸入并運行表1.3中的程序段,把結(jié)果填入表

12、右邊的空格中,并分析結(jié)果,說明本程序段的功能是什么。程序段字單元(1A00H)=字單元(1A02H)=MOV 1A00H, 0AA55HMOV 1A02H, 2AD5HSHL WORD PTR1A02H,1 CMP 1A00H, 8000HCMCRCL WORD PTR1A02H,1RCL WORD PTR1A00H,1550055D555AA55AA55AA5555AA55功能是將第一個數(shù)除以2,第二個數(shù)乘以4四、 實驗報告要求1 簡要說明ADD、SUB、AND、OR指令對標志位的影響。ADD:對6個狀態(tài)標志位都會影響;SUB:影響與ADD指令影響完成相同;AND: 影響6個標志位,并使CF

13、=OF=0;OR: 影響6個標志位,并使CF=OF=02 簡要說明一般移位指令與循環(huán)移位指令之間的主要區(qū)別。一般移位: 將操作數(shù)右移m位,同時每移一位,左邊的符號位保持不變,移出的最低位進入標志位CF。對于有符號數(shù)和無符號數(shù)而言,算術(shù)右移相當于除以2.;循環(huán)移位:循環(huán)移位指令的操作數(shù)形式與移位指令相同,如果僅移動一次,可以用1表示;如果需要移位多次,則需用CL寄存器表示移位次數(shù)。 實驗三 算術(shù)邏輯運算及移位操作一、 實驗目的1熟悉串操作指令的功能。2了解串操作指令的使用方法。二、 實驗預習要求1復習8086指令系統(tǒng)中的串操作類指令。2按照題目要求在實驗前編寫好實驗中的程序段。三、 實驗任務(wù)1

14、輸入以下程序段并運行之,回答后面的問題。 CLDMOV DI,1000HMOV AX,55AAHMOV CX,10HREP STOSW (1) 從DS:1000H開始的16個字單元的內(nèi)容是什么?(2) (DI)= ?(CX)= ?,并解釋其原因。2 在上題的基礎(chǔ)上,再輸入以下程序段并運行之,回答后面的問題。MOV SI,1000HMOV DI,2000HMOV CX,20HREP MOVSB (1) 從DS:2000H開始的16個字單元的內(nèi)容是什么?(2) (SI)= ?(DI)= ?(CX)= ?,并分析之。3 從DS:1000H開始存放有一個字符串”This is a string”,要求

15、把這個字符串從后往前傳送到DS:2000H開始的內(nèi)存區(qū)域中(即傳送結(jié)束后,從DS:2000H開始的內(nèi)存單元的內(nèi)容為”gnirts a si siht”),試編寫程序段并上機驗證之。#MAKE_COM# ORG 100H JMP STARTSTR DB 'THIS IS A STRING',13,10 START: LEA SI, STR MOV DI,1000H MOV CX,10H CLD REP MOVSB MOV CX,10H MOV SI,1000H MOV DI,200FHAGAIN: CLD LODSB STD STOSB LOOP AGAIN四、 實驗報告要求1

16、簡要說明執(zhí)行串操作指令之前應初始化哪些寄存器和標志位。 應預設(shè)源串指針DS,SI,目標串指針ES,DI,重復次數(shù)CX,及操作方向DF2 總結(jié)串操作指令的用途及使用方法。實驗四 字符及字符串的輸入和輸出一、 實驗目的1熟悉如何進行字符及字符串的輸入輸出。2掌握簡單的DOS系統(tǒng)功能調(diào)用。二、 實驗預習要求1復習系統(tǒng)功能調(diào)用的1、2、9、10號功能。2按照題目要求預先編寫好實驗中的程序段。三、 實驗任務(wù)1 要在屏幕上顯示一個字符串“Hello, world”,寫出該字符串變量的定義語句和顯示這個字符串的程序段。上機驗證之。 DSEG SEGMENTSTR DB Hello,world, 0DH,0A

17、H,$DSEG ENDSCSEG SEGMENT ASSUME CS: CSEG,DS: DSEGSTART: MOV AX,DSEG MOV DS,AX LEA DX,STR MOV AH,09H INT 21H MOV AH,4CH INT 21HCSEG ENDS END START2 按6行×16列的格式順序顯示ASCII碼為20H到7FH之間的所有字符,即每16個字符為一行,共6行。每行中相鄰的兩個字符之間用空格字符分隔開。試編寫程序段并上機運行驗證。提示:程序段包括兩層循環(huán),內(nèi)循環(huán)次數(shù)為16,每次內(nèi)循環(huán)顯示一個字符和一個空格字符;外循環(huán)次數(shù)為6,每個外循環(huán)顯示一行字符并顯

18、示一個回車符(0DH)和一個換行符(0AH)。 程序如下:#MAKE_EXE#CODE SEGMENTMAIN PROC FAR ASSUME CS:CODESTART: MOV AH, 02H MOV DL, 20H MOV BL, 6 E: MOV CX, 16 L: INT 21H PUSH DX MOV AH, 02H MOV DL, 0 INT 21H MOV AH, 02H MOV DL, 0 INT 21H POP DX INC DL LOOP L PUSH DX MOV AH, 02H MOV DL, 0DH INT 21H MOV AH, 02H MOV DL, 0AH IN

19、T 21H POP DX DEC BL CMP BL, 0 JNE AGAIN JE EEXIT: MOV AX, 4CH INT 21HMAIN ENDPCODE ENDS END START四、 實驗報告要求1 1、2、9、10號功能的輸入輸出參數(shù)有哪些?分別放在什么寄存器中?2 總結(jié)一下,如何實現(xiàn)字符及字符串的輸入輸出。 字符串輸入:MOV AH, 0AH ;功能號0AH LEA DX, <字符串緩沖區(qū)首地址>; 字符串在內(nèi)存中的存放地址(由DS:DX定) INT 21H 字符串輸出:顯示字符串(功能號=9)     MOV AH, 9  &

溫馨提示

  • 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

提交評論