




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、微機原理與接口技術微機原理與接口技術 實驗指導書實驗指導書 編者:編者:王亭嶺王亭嶺 華北水利水電學院華北水利水電學院 電氣學院自動化教研室電氣學院自動化教研室 二零一二年三月二零一二年三月 目目 錄錄 實驗一實驗一 標志寄存器應用標志寄存器應用.1 實驗二實驗二 指令尋址方式練習指令尋址方式練習.4 實驗三實驗三 分支結構程序設計分支結構程序設計.6 實驗四實驗四 循環(huán)結構程序設計循環(huán)結構程序設計.7 實驗五實驗五 子程序結構程序設計子程序結構程序設計.8 實驗六實驗六 DOS 系統(tǒng)功能調用程序設計系統(tǒng)功能調用程序設計.12 實驗七實驗七 BIOS 中斷調用程序設計中斷調用程序設計 .14
2、實驗八實驗八 定時器中斷程序設計定時器中斷程序設計.16 實驗一實驗一 標志寄存器應用標志寄存器應用 一、實驗目的與要求 1掌握匯編程序的編譯過程; 2掌握 8086 的標志寄存器的特點。 二、實驗內容 練習識別 8086 標志寄存器的各種標志位。PC 機中狀態(tài)位的表示如下: 標志位的名稱為 1 的對應符號為 0 的對應符號 OF 溢出標志OVNV DF 方向標志DNUP IF 中斷允許標志EIDI SF 符號標志NGPL ZF 零標志ZRNZ AF 半進位標志ACNA PF 奇偶標志PEPO CF 進位標志CYNC 三、實驗設備 微型計算機(80 x86 系列) 。 四、實驗參考程序 DAT
3、A SEGMENT A DW 123 B DW 456 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX MOV AX , A SUB AX , B MOV SUM , AX MOV AH,4CH INT 21H CODE ENDS END START 五、實驗步驟 步驟一、用鼠標單擊開始菜單,單擊運行。如下圖所示: 步驟二、在運行窗口中鍵入 cmd,回車進入命令提示符。如下圖所示: 步驟三、在命令提示符中編譯匯編源程序并連接*.obj 文件。如下圖所示: 1C:D
4、: 回車 2D: CD MASM 回車 3D:MASMMASM SY1.ASM 回車 4D:MASMLINK SY1.OBJ 回車 步驟四、在命令提示行中運行并調試匯編程序。如下圖所示: 1D:MASMSY1.EXE 回車 2D:MASMDEBUG SY1.EXE 回車 六、實驗結論 1程序運行后變量 SUM 的值是多少? 2程序運行前后標志寄存器的各標志位有何變化? 3分析實驗結果及所遇到的問題,并說明解決的方法。 實驗二實驗二 指令尋址方式練習指令尋址方式練習 一、實驗目的與要求 1掌握匯編語言調試工具(DEBUG)的基本使用方法; 2掌握 8086 的尋址方式。 二、實驗內容 練習識別
5、8086 相關指令的尋址方式。 DEBUG 的命令及其功能: 命令功能格式 A對語句進行匯編A C比較內存內容C D顯示內存內容D或 E修改內存內容E F填充內存內容F G運行一個程序或程序段G H十六進制的加減法運算H I讀/顯示輸入字節(jié)I L 裝入文件或磁盤扇區(qū)L M傳送內存塊M N定義文件名和參量N O輸出命令O P單步,并跳過子程序P Q退出 DEBUGQ R顯示和修改寄存器內容R S對字符進行檢索S T跟蹤執(zhí)行和顯示T U對指令進行反匯編U W 寫入文件或磁盤扇區(qū)W 其中表示輸入的內容;表示為可選項。 三、實驗設備 微型計算機(80 x86 系列) 。 四、實驗參考程序 DSEG S
6、EGMENT ARRAY DB 11,56,78,8,76,90,96,33,21,06 COUNT DW $ - ARRAY RELUST DB ? DSEG ENDS SSEG SEGMENT PARA STACK STACK SDAT DB 50 DUP (?) TOP EQU LENGTH SDAT SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG , DS:DSEG , SS:SSEG START: MOV AX , DSEG MOV DS , AX MOV AX , SSEG MOV SS , AX MOV AX ,TOP MOV SP , AX MOV
7、BX , OFFSET ARRAY MOV CX , COUNT DEC CX MOV AL , BX AGAIN: INC BX CMP AL , BX JAE NEXT MOV AL , BX NEXT: DEC CX JNZ AGAIN MOV RELUST, AL MOV AH, 4CH INT 21H CSEG ENDS END START 五、實驗步驟 1D:MASMMASM SY2.ASM 2D:MASMLINK SY2.OBJ 3D:MASMSY2.EXE 4D:MASMDEBUG SY2.EXE 六、實驗結論 1指出參考程序中帶下劃線的指令中源操作數的尋址方式? 2程序運行后
8、 AL 中的值是多少? 3分析實驗結果及所遇到的問題,并說明解決的方法。 實驗三實驗三 分支結構程序設計分支結構程序設計 一、實驗目的與要求 學習并掌握匯編語言分支結構程序設計的方法。 二、實驗內容 比較兩個無符號數的大小,把大數存入 MAX 單元。 三、實驗設備 微型計算機(80 x86 系列) 。 四、實驗參考程序 DSEG SEGMENT NUMBER DB 60H,66H MAX DB ? DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEG MOV DS,AX MOV AL,NUMBER CMP AL,NUM
9、BER+1 JNC BRANCH MOV AL,NUMBER+1 BRANCH: MOV MAX,AL MOV AH,4CH INT 21H CSEG ENDS END START 五、實驗步驟 1D:MASMMASM SY3.ASM 2D:MASMLINK SY3.OBJ 3D:MASMSY3.EXE 4D:MASMDEBUG SY3.EXE 六、實驗結論 1說明指令 JNC 的功能? 2程序運行后變量 MAX 的值是多少? 3分析實驗結果及所遇到的問題,并說明解決的方法。 實驗四實驗四 循環(huán)結構程序設計循環(huán)結構程序設計 一、實驗目的與要求 學習并掌握匯編語言循環(huán)結構程序設計的方法。 二、實
10、驗內容 統(tǒng)計字符串 STRING 中空格的個數。源程序見實驗參考程序。 三、實驗設備 微型計算機(80 x86 系列) 。 四、實驗參考程序 DSEG SEGMENT STRING DB Where there is a will,there is a way. $ RESULT DW ? DSEG ENDS CSEG SEGMENT ASSUME DS:DSEG,CS:CSEG START: MOV AX,DSEG MOV DS,AX MOV BX,OFFSET STRING MOV DX,0 NEXT: MOV AL,BX CMP AL,$ JZ FIN CMP AL,20H JNZ CO
11、NT INC DX CONT: INC BX JMP NEXT FIN: MOV RESULT,DX MOV AH,4CH INT 21H CSEG ENDS END START 五、實驗步驟 1D:MASMMASM SY4.ASM 2D:MASMLINK SY4.OBJ 3D:MASMSY4.EXE 4D:MASMDEBUG SY4.EXE 六、實驗結論 1指出參考程序中循環(huán)體執(zhí)行的次數? 2程序運行后變量 RESULT 的值是多少? 3分析實驗結果及所遇到的問題,并說明解決的方法。 實驗五實驗五 子程序結構程序設計子程序結構程序設計 一、實驗目的與要求 學習并掌握匯編語言子程序結構程序設計
12、的方法。 二、實驗內容 利用堆棧,采用遞歸子程序的方法,編程實現求N!。掌握匯編語言子 程序結構程序設計的方法。 三、實驗設備 微型計算機(80 x86 系列) 。 四、實驗參考程序 圖 5-1 求階乘示意圖 DSEG SEGMENT N DW 5 ;此變量要送人 AX 中,應定義為字類型 RLT DW ? ;存放運算后的結果 DSEG ENDS SSEG SEGMENT STACK STACK ;聲明組合類型后,系統(tǒng)自動為 SS 及 SP DW 100 DUP (?) ;分配值 SSEG ENDS CSEG SEGMENT ASSUME CS :CSEG,DS:DSEG,SS:SSEG ST
13、ART: MOV AX, DSEG MOV DS, AX MOV AX, N CALL REC ;調用求階乘遞歸子程序 BRK: MOV RLT,AX ;運算后的結果送人 RLT 中 MOV AH, 4CH INT 21H REC PROC NEAR PUSH DX ;遞歸調用時 DX(5、4、3、2)依次壓入堆棧 MOV DX, AX CMP AX,1 JZ EXIT DEC AX CALL REC ;遞歸調用 AMD: MUL DX ;AX * DXDXAX EXIT: POP DX RET REC ENDP CSEG ENDS END START 五、實驗步驟 1D:MASMMASM S
14、Y5.ASM 2D:MASMLINK SY5.OBJ 3D:MASMSY5.EXE 4D:MASMDEBUG SY5.EXE 六、實驗結論 1說明利用堆棧實現參數傳遞的好處? 2程序運行后變量 SUM 的值是多少? 3分析實驗結果及所遇到的問題,并說明解決的方法。 實驗六實驗六 DOS 系統(tǒng)功能調用程序設計系統(tǒng)功能調用程序設計 一、實驗目的與要求 1掌握 DOS 系統(tǒng)功能調用的方法; 2正確使用功能調用中相關的入口參數和出口參數。 二、實驗內容 接收鍵盤輸入并在屏幕上顯示。如果是 “ESC”鍵,則退出程序(參考 程序 1) ;輸出 MESS 中的字符串。按 “ESC”鍵退出程序(參考程序 2)
15、 。 運行可執(zhí)行文件并加以調試。分析運行結果。 三、實驗設備 微型計算機(80 x86 系列) 。 四、實驗參考程序 1實驗參考程序 1: CSEG SEGMENT ASSUME CS:CSEG START: MOV AH , 1 START1: INT 21H CMP AL , 1BH JZ OVER JMP START1 OVER: MOV AH , 4CH INT 21H CSEG ENDS END START 2實驗參考程序 2: DSEG SEGMENT MESS DB HuaBeiShuiYuan!$ ;顯示信息 DSEG ENDS CSEG SEGMENT ASSUME CS:
16、CSEG, DS:DSEG START: MOV AX, DSEG MOV DS, AX LEA DX, MESS MOV AH, 9 INT 21H MOV AH , 07H ;功能號為 07H 的功能是鍵盤輸入無回顯 INPUT: INT 21H CMP AL , 1BH ;“ESC”鍵的 ASCII 是 1BH JZ EXIT ;按“ESC”鍵退出程序 JMP INPUT EXIT: MOV AH , 4CH INT 21H CSEG ENDS END START 五、實驗步驟 1D:MASMMASM SY6.ASM 2D:MASMLINK SY6.OBJ 3D:MASMSY6.EXE
17、4D:MASMDEBUG SY6.EXE 六、實驗結論 1說明參考程序所完成的功能? 2什么是 DOS 系統(tǒng)功能調用? 3分析實驗結果及所遇到的問題,并說明解決的方法。 實驗七實驗七 BIOS 中斷調用程序設計中斷調用程序設計 一、實驗目的與要求 1掌握 BIOS 中斷調用的方法; 2正確使用功能調用中相關的入口參數和出口參數。 二、實驗內容 采用 BIOS 功能調用在屏幕上用多種屬性顯示字符串 。運行可執(zhí)行文件 并加以調試。分析運行結果。 三、實驗設備 微型計算機(80 x86 系列) 。 四、實驗參考程序 ROW=5 ;常量定義,顯示信息的行號 COLUM=10 ;顯示信息的列號 ESCK
18、EY=1BH ;ESC 鍵的 ASCII 碼值 DSEG SEGMENT MESS DB HuaBeiShuiYuan! ;顯示信息 MESS_LEN = $ - OFFSET MESS ;顯示信息的長度 COLORB DB 07H,01H,0FH,70H,74H ;顏色屬性 COLORE LABEL BYTE DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS:DSEG, ES:DSEG START: MOV DI, OFFSET COLORB-1 ;顏色指針初值 NEXTC: MOV AX, DSEG MOV DS, AX ;設置數據段段值 MOV ES,
19、 AX ; ES 指向數據段 INC DI ;調整顏色指針 CMP DI, OFFSET COLORE ;是否超過指定的顏色 JNZ NEXTE ;沒有超過則跳轉 MOV DI, OFFSET COLORB ;超過則重新指定為第一種顏色 NEXTE: MOV BL, DI ;取顏色 MOV SI, OFFSET MESS ;取顯示信息指針 MOV CX, MESS_LEN ;取顯示信息長度 MOV DH, ROW ;設置顯示開始行號 MOV DL, COLUM ;設置顯示開始列號 CALL ECHO ;調用顯示子程序 MOV AH, 0 ; 0 號功能為從鍵盤讀字符 INT 16H ;執(zhí)行 I
20、NT 16H 的 0 號功能 CMP AL, ESCKEY ;是否為“ESC”鍵 JNZ NEXTC ;不是,繼續(xù)循環(huán) MOV AH, 4CH ;結束程序,返回 DOS INT 21H ;子程序入口參數包括:DS:SI = 字符串首地址 ; CX = 字符串長度,BL = 屬性,DH = 顯示開始行號,DL=顯示開始列號 ECHO PROC NEAR JCXZ ECHO2 ;如果字符串長度為 0,則結束 MOV BH, 0 MOV AH, 2 ;設置光標位置 INT 10H MOV AL, 20H ;用指定屬性寫一空格 MOV AH, 9 INT 10H MOV AH, 0EH ECHO1:
21、MOV AL, SI INC SI INT 10H ;逐個顯示字符 CALL DELAY ;調用延時子程序 LOOP ECHO1 ECHO2: RET ECHO ENDP DELAY PROC NEAR ;延時子程序 PUSH BX PUSH CX MOV BX, 500 WAIT0: MOV CX, 0FFFFH WAIT1: LOOP WAIT1 DEC BX JNZ WAIT0 POP CX POP BX RET DELAY ENDP CSEG ENDS END START 五、實驗步驟 1D:MASMMASM SY7.ASM 2D:MASMLINK SY7.OBJ 3D:MASMSY7
22、.EXE 4D:MASMDEBUG SY7.EXE 六、實驗結論 1說明參考程序所完成的功能? 2什么是 BIOS 中斷調用? 3分析實驗結果及所遇到的問題,并說明解決的方法。 實驗八實驗八 定時器中斷程序設計定時器中斷程序設計 一、實驗目的與要求 1掌握中斷的基本概念; 2會將定時器中斷子程序的入口地址寫入中斷向量表中; 3理解簡單的多任務操作。 二、實驗內容 將自編的顯示系統(tǒng)時間的中斷服務子程序駐留在內存中,通過定時器中斷 (向量號為 1CH)定時調用中斷服務子程序來顯示系統(tǒng)時間,同時可以在命令 提示符下運行并調試其他程序,實現多任務操作。運行可執(zhí)行文件并加以調試。 分析運行結果。 三、實
23、驗設備 微型計算機(80 x86 系列) 。 四、實驗參考程序 CODE SEGMENT ASSUME CS:CODE, DS:CODE START: JMP GOSET OLDCUR DW ? OLD1C DW 2 DUP(?) NEWINT1C: PUSHF CALL DWORD PTR CS:OLD1C ;OLD1C 中為 1CH 的中斷向量 PUSH AX PUSH BX PUSH CX PUSH DX XOR BH, BH ;BH 清零 MOV AH, 3 ;INT 10H 的 3 號功能為讀光標位置, INT 10H ;BH=頁號,返回參數 DH/DL=行/列 MOV CS:OLD
24、CUR, DX ;光標位置保存在 OLDCUR 單元中 MOV AH, 2 ;INT 10H 的 2 號功能為置光標位置, BH=頁號 XOR BH, BH ;清零,表明為 0 頁 MOV DX, 0146H ; DH/DL=行/列,設置顯示的時間在 1 行/70 列 INT 10H MOV AH, 2 ;INT 1AH 的 2 號功能為讀電池供電時鐘時間 INT 1AH ;出口參數:CH:CL:DH=時:分:秒 PUSH DX PUSH CX POP BX ;CX 壓入堆棧的值彈出給 BX PUSH BX CALL SHOWBYTE ;此處調用為顯示小時 CALL SHOWCOLON ;顯示
25、: POP BX XCHG BH, BL ;BL 中為分鐘值 CALL SHOWBYTE ;此處調用為顯示分鐘 CALL SHOWCOLON ;顯示: POP BX ;DX 壓入堆棧的值彈出給 BX CALL SHOWBYTE ;BL 中為秒值 MOV DX, CS:OLDCUR ;恢復保存在 OLDCUR 單元中的光標位置 MOV AH, 2 XOR BH, BH INT 10H POP DX POP CX POP BX POP AX IRET ;中斷返回指令 SHOWBYTE PROC NEAR ;將 BX 中的值轉換為 ASCII 碼后顯示在屏幕上 PUSH BX MOV CL, 4 M
26、OV AL, BH ;BH 中的值可以是當前時:分:秒 SHR AL, CL ADD AL, 30H ;計算 ASCII 碼 CALL SHOW ;在光標位置顯示字符和屬性 CALL CURMOVE ;子程序的功能為讀當前光標并后移 POP BX MOV AL, BH AND AL, 0FH ADD AL, 30H CALL SHOW CALL CURMOVE RET SHOWBYTE ENDP SHOWCOLON PROC NEAR ;顯示: MOV AL,: CALL SHOW CALL CURMOVE RET SHOWCOLON ENDP CURMOVE PROC NEAR ;讀當前光標并后移 PUSH AX PUSH BX PUSH CX PUSH DX MOV AH, 3 ;INT 10H 的 3 號功能為讀光標位置 MOV BH, 0 INT 10H INC DL ;列增 1,光標
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機關內部培訓活動方案
- 晚宴拓展活動方案
- 朗誦藝術活動方案
- 林肯走秀活動活動方案
- 林業(yè)科技報務年活動方案
- 村級載體活動方案
- 服裝線下展示活動方案
- 服裝免洗活動方案
- 春節(jié)玩具活動方案
- 期末匯報課活動方案
- GB/T 39866-2021建筑門窗附框技術要求
- GB/T 3836.2-2021爆炸性環(huán)境第2部分:由隔爆外殼“d”保護的設備
- 關節(jié)脫位患者的護理-關節(jié)脫位患者的護理(外科護理ppt)
- 產品合格證模板-合格證模板樣本
- 領導干部的決策力與執(zhí)行力
- 水泵試運行調試記錄
- 半導體中載流子的統(tǒng)計分布和計算
- 組織部處級干部培訓審計財經紀律課件
- 史上最全最權威婦產科icd編碼培訓【版】課件
- 心血管診治與搶救標準操作規(guī)程(SOP)
- 中南大學自主招生綜合素質測試面試試題答題技巧
評論
0/150
提交評論