微機原理與接口技術(shù)實驗報告匯總_第1頁
微機原理與接口技術(shù)實驗報告匯總_第2頁
微機原理與接口技術(shù)實驗報告匯總_第3頁
微機原理與接口技術(shù)實驗報告匯總_第4頁
微機原理與接口技術(shù)實驗報告匯總_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實實 驗驗 報報 告告 課程名稱課程名稱 微機原理與接口技術(shù)微機原理與接口技術(shù) 專專 業(yè)業(yè) 計計 科科 班班 級級 五五 班班 姓姓 名名 胡胡 益益 學(xué)學(xué) 號號 指導(dǎo)教師指導(dǎo)教師 朱紅偉朱紅偉 實驗成績實驗成績 目錄目錄 實驗一實驗一 系統(tǒng)認識實驗系統(tǒng)認識實驗 .3 實驗二實驗二 數(shù)碼轉(zhuǎn)換編程及程序調(diào)試數(shù)碼轉(zhuǎn)換編程及程序調(diào)試 .8 實驗三實驗三 運算類編程實驗運算類編程實驗 .12 實驗四實驗四 分支程序設(shè)計實驗分支程序設(shè)計實驗 .17 實驗五實驗五 分支程序設(shè)計實驗分支程序設(shè)計實驗 2 .23 實驗六實驗六 循環(huán)程序設(shè)計循環(huán)程序設(shè)計 .31 實驗七實驗七 子程序設(shè)計子程序設(shè)計 .39 實驗

2、八實驗八 顯示程序?qū)嶒烇@示程序?qū)嶒?.45 實驗九實驗九 中斷特性及中斷特性及 8259 應(yīng)用編程實驗應(yīng)用編程實驗 .49 實驗十實驗十 8255 并行接口應(yīng)用實驗并行接口應(yīng)用實驗 .55 實驗十一實驗十一 8253 定時定時/計數(shù)器應(yīng)用實驗計數(shù)器應(yīng)用實驗 .60 實驗十二實驗十二 8253 定時器應(yīng)用實驗定時器應(yīng)用實驗 .66 實驗十三實驗十三 A/D 轉(zhuǎn)換實驗轉(zhuǎn)換實驗.72 實驗十四實驗十四 D/A 轉(zhuǎn)換實驗轉(zhuǎn)換實驗.77 實驗十五實驗十五 8255 鍵盤及顯示接口實驗鍵盤及顯示接口實驗 .81 實驗十六實驗十六 步進電機實驗步進電機實驗 .85 實驗一實驗一 系統(tǒng)認識實驗系統(tǒng)認識實驗 一

3、一 實驗?zāi)康膶嶒災(zāi)康?掌握 TDN86/51 或 TDN86、88 教學(xué)系統(tǒng)的基本操作。 二二 實驗設(shè)備實驗設(shè)備 TDN86/51 或 TDN86、88 教學(xué)實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1.使用串行通訊電纜將實驗系統(tǒng)與 PC 微機相連。 2.打開實驗環(huán)境 WMD86. 3.輸入源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK ; ; DWDW 6464 DUP(?);DUP(?); STACKSTACK ENDSENDS CODECODESEGMENT;SEGMENT; ASSUMEASSUME CS:CODECS:CODE START:

4、MOVSTART:MOV DI,3500H;DI,3500H; MOVMOV CX,0010H;CX,0010H; MOVMOV AX,0000HAX,0000H A1:MOVA1:MOV DI,AL;DI,AL; INCINC DI;DI; LOOPLOOP A1;A1; A2:JMPA2:JMP A2A2 CODECODEENDS;ENDS; ENDEND START;START; 4.進行端口測試。 5. 進行匯編、鏈接。 6.調(diào)試無誤,并載入程序。 四四 實驗結(jié)果實驗結(jié)果 1.輸入 U2000 命令進行反匯編,檢查程序是否正確裝入。如圖(4- 1) 圖(4-1)檢查程序是否正確裝入 2

5、.當(dāng)發(fā)現(xiàn)源程序輸入錯誤或需調(diào)試,輸入指令 A 來修改,如修改 2000 句 MOV DI,3500。如圖(4-2) 圖(4-2)修改 2000 句 3.對程序進行連續(xù)運行。結(jié)果如圖(4-3) 圖(4-3)連續(xù)運行 4.內(nèi)存單元內(nèi)容顯示,結(jié)果如圖(4-4) 圖(4-4)內(nèi)存單元內(nèi)容 5.內(nèi)存單元內(nèi)容的修改,如圖(4-5) 圖(4-5)修改單元內(nèi)容 五五 思考與總結(jié)思考與總結(jié) 通過本次實驗,使我對 TDN86/88 教學(xué)系統(tǒng)的基本操作有了一定 的了解,對實驗有了更深的認識,更了解了自己所學(xué)的知識應(yīng)該如 何應(yīng)用。期間也遇到了不少困難,不過在老師和同學(xué)幫助之下都解 決了問題順利完成了實驗。 實驗二實驗

6、二 數(shù)碼轉(zhuǎn)換編程及程序調(diào)試數(shù)碼轉(zhuǎn)換編程及程序調(diào)試 一一 實驗?zāi)康膶嶒災(zāi)康?1.掌握不同進制數(shù)及編碼相互轉(zhuǎn)換的程序設(shè)計方法,加深對數(shù)碼轉(zhuǎn) 換的理解。 2.熟悉鍵盤使用方法。 3.熟悉調(diào)試程序的方法。 二二 實驗設(shè)備實驗設(shè)備 TDN86/51 或 TDN86/88 教學(xué)實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1.連接計算機與外設(shè) 2 輸入程序并檢查無誤,經(jīng)匯編、連接后裝入程序。 STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT AS

7、SUMEASSUME CS:CODECS:CODE START:START:MOVMOV CX,0004HCX,0004H ; ;設(shè)置循環(huán)次數(shù)設(shè)置循環(huán)次數(shù) MOVMOV DI,3500HDI,3500H ; ;將立即數(shù)將立即數(shù) 35003500 傳送給傳送給 DIDI 寄存器寄存器 MOVMOV DX,DIDX,DI ;將;將35003500單元的內(nèi)容傳送給單元的內(nèi)容傳送給 DxDx 寄存器寄存器 203B203B A1:A1: MOVMOV AX,DXAX,DX ;將;將 DXDX 寄存器的內(nèi)容傳送給寄存器的內(nèi)容傳送給 AxAx 寄存器寄存器 AX=203BAX=203B ANDAND AX

8、,000FHAX,000FH ;與操作。作用是:高;與操作。作用是:高 1212 位全部屏蔽掉,只保留原來的低位全部屏蔽掉,只保留原來的低 四位。結(jié)果存放在四位。結(jié)果存放在 AXAX 中。中。AX=000BHAX=000BH CMPCMP AL,0AHAL,0AH ;和;和 1010 比較比較 JBJB A2A2 ;JMPJMP ifif BelowBelow 如果如果 ALAL 小于小于 1010,那么跳轉(zhuǎn)到,那么跳轉(zhuǎn)到 A2A2; 加上加上 3030,轉(zhuǎn)換為對應(yīng)的,轉(zhuǎn)換為對應(yīng)的 ASCIIASCII 碼,結(jié)果存放在碼,結(jié)果存放在 ALAL ADDADD AL,07HAL,07H ;意味著;

9、意味著 ALAL 是大于等于是大于等于 1010 的,為的,為 A-FA-F 范圍內(nèi)的數(shù),先加范圍內(nèi)的數(shù),先加 上上 7 7,結(jié)果存放在,結(jié)果存放在 ALAL。 A2:A2: ADDADD AL,30HAL,30H ;繼續(xù)加;繼續(xù)加 3030,結(jié)果存放在,結(jié)果存放在 ALAL;以下是存放結(jié)果的程序;以下是存放結(jié)果的程序 MOVMOV DI+0AH,ALDI+0AH,AL ;將結(jié)果傳送到;將結(jié)果傳送到 3500+A,3500+A,即即350A350A單元單元 第一次循環(huán)的時第一次循環(huán)的時 候存放的是最地位的候存放的是最地位的 ASCIIASCII 碼碼 INCINC DIDI ;DIDI 加加

10、1 1,變?yōu)?,變?yōu)?35013501 PUSHPUSH CXCX ;將;將 CXCX 的內(nèi)容壓入堆棧,目的是為了保存的內(nèi)容壓入堆棧,目的是為了保存 CXCX 的原始內(nèi)容的原始內(nèi)容 MOVMOV CL,04HCL,04H ;將立即數(shù);將立即數(shù) 0404 傳送給傳送給 CLCL 寄存器寄存器 SHRSHR DX,CLDX,CL ;將;將 DXDX 寄存器右移寄存器右移 CLCL 位。也就是右移位。也就是右移 4 4 位。位。DXDX 內(nèi)容由內(nèi)容由 203B203B 變?yōu)樽優(yōu)?02030203 POPPOP CXCX ;恢復(fù);恢復(fù) CXCX 的內(nèi)容。的內(nèi)容。 LOOPLOOP A1A1 ;循環(huán);循環(huán)

11、 A1A1,直到,直到 CXCX 為為 0 0 CODECODE ENDSENDS ENDEND STARTSTART 3.在 3500-3501H 單元中存入四位十六進制數(shù) 203B,即:E3500, 并輸入 3B、20。 4.D350A,輸入數(shù)字與結(jié)果 ASC碼對應(yīng)順序相反。 5.反復(fù)調(diào)試幾組數(shù)據(jù),考察程序的正確性。 四四 實驗結(jié)果實驗結(jié)果 1.在 3500-3501 單元中存入四位十六進制數(shù) 203B。如圖(4-1) 圖 4-1 存入十六進制數(shù) 2.運行程序。如圖(4-2) 圖 4-2 G=0000:2000 運行程序 3.顯示結(jié)果.如圖(4-3) 圖 4-3 結(jié)果 五五 思考與總結(jié)思考

12、與總結(jié) 1.在十六進制數(shù)轉(zhuǎn)換為 ASCII 碼時,存轉(zhuǎn)換結(jié)果后,為什么要把 DX 向右移四次? 答:對存放空間的要求,因為對于十六進制每四個 ASCII 碼從右往 左數(shù)是 4 個一次,算十六進制的一個位次,因此十六進制轉(zhuǎn)換成 ASCII 碼要把 DX 向右移四次。 2.自己的實驗感受 本次實驗是將十六進制數(shù)轉(zhuǎn)換為 ASCII 碼。首先經(jīng)過 CPU 處理 后的十六進制數(shù)存放于起始地址為 3500H 的內(nèi)存單元中,把它們轉(zhuǎn) 換成 ASCII 碼后,再分別存入起始地址為 350AH 的內(nèi)存單元中。 實驗三實驗三 運算類編程實驗運算類編程實驗 一一 實驗?zāi)康膶嶒災(zāi)康?1.掌握使用運算類指令編程及調(diào)試方

13、法。 2.掌握運算類指令對各狀態(tài)標(biāo)志位的影響及其測試方法 二二 實驗設(shè)備實驗設(shè)備 TDN86/51 或 TDN86/88 教學(xué)實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1.連接計算機與外設(shè) 2.輸入程序并檢查無誤,經(jīng)匯編、連接后裝入程序。 STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS DATADATA SEGMENTSEGMENT XLXL DWDW ? ? XHXH DWDW ? ? YLYL DWDW ? ? YHYH DWDW ? ? ZLZL DWDW ? ? ZH

14、ZH DWDW ? ? DATADATA ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODE,DS:DATACS:CODE,DS:DATA START:MOVSTART:MOV AX,DATAAX,DATA MOVMOV DS,AXDS,AX MOVMOV AX,XLAX,XL ADDADD AX,YLAX,YL MOVMOV ZL,AXZL,AX MOVMOV AX,XHAX,XH ADCADC AX,YHAX,YH MOVMOV ZH,AXZH,AX A1:A1: JMPJMP A1A1 CODECODE ENDSENDS ENDEN

15、D STARTSTART 3.用 U0000:2000 查看 MOV AX,XXXX(DATA)語句,即得到數(shù)據(jù)段段地 址 CS:XXXX 用 E 命令 EXXXX:0000給 XL,XH,YL,YH 賦值存入二進 制數(shù) A0 65 15 00 和 9E B7 21 00。 4.G=0000: 2000,運行以上程序。 5.DXXXX:0008,顯示計算結(jié)果。 6.反復(fù)調(diào)試幾組數(shù)據(jù),考察程序的正確性。 四四 實驗結(jié)果實驗結(jié)果 1.查看 MOV AX,XXXX 語句,地道段地址。如圖(4-1) 圖 4-1 段地址 2.給 XL,XH,YL,YH 賦值二進制數(shù)。如圖(4-2) 圖 4-2 賦值數(shù)

16、3.運行程序并查看結(jié)果。如圖(4-3) 圖 4-3 實驗結(jié)果顯示 五五 思考與總結(jié)思考與總結(jié) 本次實驗我們做得是運算類編程實驗中二進制雙精度加法運算。 雙精度運算,是利用累加器 AX,先求低十六位和,并存入低址單元, 后求高 16 位和,再存入高址存儲單元。由于低位和可能向高位有進 位,因而高位字相加語句需用 ADC 指令,則低位相加有進位時, CF=1,高位字相加時,同時加上 CF 中的 1。這次實驗有很多細節(jié)需 要注意,在不注意的情況之下我們出了很多錯誤,后來在老師的指 導(dǎo)幫助下完成了實驗。 實驗四實驗四 分支程序設(shè)計實驗分支程序設(shè)計實驗 一一 實驗?zāi)康膶嶒災(zāi)康?1.掌握分支程序的結(jié)構(gòu)。

17、2.掌握分支程序的設(shè)計、調(diào)試方法。 二二 實驗設(shè)備實驗設(shè)備 TDN86/51 或 TDN86/88 教學(xué)實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1.內(nèi)容: 設(shè)計一數(shù)據(jù)塊間的搬移程序 設(shè)計思想:程序要求把內(nèi)存中一數(shù)據(jù)區(qū)(稱為源數(shù)據(jù)塊)傳送到 另一存儲區(qū)(稱為目的數(shù)據(jù)塊) 。 注意: 當(dāng)源數(shù)據(jù)塊首址目的塊首址時,從數(shù)據(jù)塊首地址開始傳送數(shù)據(jù)。 當(dāng)源數(shù)據(jù)塊首址目的塊首址時,應(yīng)從數(shù)據(jù)塊首地址開始 傳送數(shù)據(jù)。而當(dāng)源數(shù)據(jù)塊首址目的塊首址時,應(yīng)從數(shù)據(jù)塊首地址開始傳 送數(shù)據(jù)。而當(dāng)源數(shù)據(jù)塊首址200 結(jié)束 程序源代碼: STACKSTACK SEGMENTSEGMENT DWDW 6464 DUP(?)

18、DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:START: MOVMOV DX,0001HDX,0001H ;將;將 0001H0001H 傳送給傳送給 DXDX,DX=0001HDX=0001H MOVMOV BL,02HBL,02H ;將;將 02H02H 傳送給傳送給 BLBL,BL=02HBL=02H A1:A1: MOVMOV AL,BLAL,BL ;將;將 BLBL 傳送給傳送給 ALAL INCINC BLBL ;對;對 BLBL 進行加一在傳送給進行加一在

19、傳送給 BLBL MULMUL BLBL ;將;將 ALAL 與與 BLBL 相乘并將結(jié)果傳送給相乘并將結(jié)果傳送給 AXAX ADDADD DX,AXDX,AX ;AXAX 與與 DXDX 相加并將結(jié)果傳給相加并將結(jié)果傳給 DXDX CMPCMP AX,00C8HAX,00C8H ;用目的操作數(shù)減去源操作數(shù),;用目的操作數(shù)減去源操作數(shù),AXAX 減去減去 00C8H00C8H,比較,比較 AXAX 數(shù)是否大于數(shù)是否大于 00C8H00C8H JNAJNA A1A1 ;當(dāng);當(dāng) CF=1CF=1 或或 ZF=1ZF=1 時進行跳轉(zhuǎn),如跳轉(zhuǎn)則進行時進行跳轉(zhuǎn),如跳轉(zhuǎn)則進行 A1,A1,如不跳轉(zhuǎn)則進行如

20、不跳轉(zhuǎn)則進行 A2A2 A2:A2: INTINT 03H03H ;對操作數(shù)加;對操作數(shù)加 1 1 CODECODE ENDSENDS ENDEND STARTSTART 實驗二:實驗二: 流程圖: 開始 數(shù)據(jù)區(qū)首址 D1 數(shù)據(jù)個數(shù) CL CH、BL 置 0 DI 增 1 數(shù)據(jù)首位=1? BL+1 BL DI 增 1 CX=0 存結(jié)果 結(jié)束 Y N N 1.程序源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASS

21、UME CS:CODECS:CODE START:START: MOVMOV DI,3000HDI,3000H; ;設(shè)數(shù)據(jù)區(qū)首址,將設(shè)數(shù)據(jù)區(qū)首址,將 3000H3000H 傳給傳給 DIDI,DI=3000HDI=3000H MOVMOV CL,DICL,DI ; ;送數(shù)據(jù)個數(shù),將送數(shù)據(jù)個數(shù),將 DIDI 的值傳給的值傳給 CLCL XORXOR CH,CHCH,CH;CH;CH 清清 0 0 MOVMOV BL,CHBL,CH;BL;BL 清清 0 0 INCINC DIDI; ;指針指向第一個數(shù)據(jù)指針指向第一個數(shù)據(jù) A1:A1: MOVMOV AL,DIAL,DI; ;將將 DIDI 的值

22、傳給的值傳給 ALAL TESTTEST AL,80HAL,80H ; ;判斷數(shù)據(jù)首位是否為判斷數(shù)據(jù)首位是否為 1 1 JEJE A2A2; ;判斷,當(dāng)判斷,當(dāng) ZF=1ZF=1 時跳轉(zhuǎn)到時跳轉(zhuǎn)到 A2A2,如不是則順序執(zhí)行,如不是則順序執(zhí)行 INCINC BLBL; ;負數(shù)個數(shù)累加負數(shù)個數(shù)累加 A2:A2: INCINC DIDI; ;指針指向第一個數(shù)據(jù)指針指向第一個數(shù)據(jù) LOOPLOOP A1A1; ;循環(huán)指令,循環(huán)執(zhí)行循環(huán)指令,循環(huán)執(zhí)行 A1A1 MOVMOV DI,BLDI,BL ; ;將將 BLBL 數(shù)據(jù)傳給數(shù)據(jù)傳給 DIDI INTINT 03H03H; ;對操作數(shù)進行加對操作數(shù)進

23、行加 1 1 CODECODE ENDSENDS ENDEND STARTSTART 2.輸入程序并檢查無誤,經(jīng)匯編、連接后裝入系統(tǒng) 3. E3000輸入數(shù)據(jù)如下: 3000=06(數(shù)據(jù)個數(shù)) 3001=12、88、82、90、22、33 4.G=0000:2000,運行實驗程序。 5.D=3007,顯示結(jié)果 03 四四 實驗結(jié)果實驗結(jié)果 1.實驗一結(jié)果如圖(4-1)所示: 圖 4-1 實驗結(jié)果為 045FH 實驗二(結(jié)果): 1.輸入數(shù)據(jù),結(jié)果如圖(4-2)所示: 圖 4-2 數(shù)據(jù)輸入 2.運行程序,查看結(jié)果如圖(4-3)所示: 五五 思考與總結(jié)思考與總結(jié) 這次實驗我們做得時關(guān)于循環(huán)程序的實

24、驗: S=1+2*3+3*4+4*5+N(N+1) ,直到 N*(N+1)項大于 200 為止。 本次實驗我通過觀察流程圖來自己設(shè)計有關(guān)程序,這樣使我對 循環(huán)結(jié)構(gòu)有了更深的了解,加深了我對乘法指令和加法指令的理解。 掌握了循環(huán)結(jié)構(gòu)程序設(shè)計的方法,知道如何對循環(huán)程序進行調(diào)試。 在實驗過程中也遇到了不少的困難,使實驗無法繼續(xù)進行下去,不 過在老師的幫助下解決了困難,順利完成了實驗,使我受益匪淺。 實驗七實驗七 子程序設(shè)計子程序設(shè)計 一一 實驗?zāi)康膶嶒災(zāi)康?1學(xué)習(xí)子程序的定義和調(diào)用方法 2.掌握子程序的結(jié)構(gòu) 3.熟練掌握子程序的程序設(shè)計、編制及調(diào)用 二二 實驗設(shè)備實驗設(shè)備 TDN86/51 或 TD

25、N86/88 教學(xué)實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 實驗實驗 1 1 編寫源代碼: DATADATA SEGMENTSEGMENT ARY1ARY1 DWDW 3 3 DUP(?)DUP(?) SUM1SUM1 DWDW ? ? ARY2ARY2 DWDW 3 3 DUP(?)DUP(?) SUM2SUM2 DWDW ? ? DATADATA ENDSENDS STACKSTACK SEGMENTSEGMENT STACKSTACK SASA DWDW 5050 DUP(?)DUP(?) TOPTOP EQUEQU LENGTHLENGTH SASA STACKSTACK EN

26、DSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODE,DS:DATA,SS:STACKCS:CODE,DS:DATA,SS:STACK MAINMAIN PROCPROC FARFAR START:START: MOVMOV AX,DATAAX,DATA; ;數(shù)據(jù)段數(shù)據(jù)設(shè)置數(shù)據(jù)段數(shù)據(jù)設(shè)置 MOVMOV DS,AXDS,AX; ;將將 AXAX 中的內(nèi)容傳送給中的內(nèi)容傳送給 DSDS MOVMOV AX,STACKAX,STACK MOVMOV SS,AXSS,AX; ;將將 AXAX 中的內(nèi)容傳送給中的內(nèi)容傳送給 SSSS MOVMOV SP,

27、TOPSP,TOP LEALEA SI,ARY1SI,ARY1; ;數(shù)組數(shù)組 1 1 首地址,入口參數(shù)首地址,入口參數(shù) MOVMOV CX,LENGTHCX,LENGTH ARY1ARY1; ;數(shù)組數(shù)組 1 1 長度,入口參數(shù)長度,入口參數(shù) CALLCALL SUMSUM; ;調(diào)用求和子程序調(diào)用求和子程序 LEALEA SI,ARY2SI,ARY2; ;數(shù)組數(shù)組 2 2 首地址,入口參數(shù)首地址,入口參數(shù) MOVMOV CX,LENGTHCX,LENGTH ARY2ARY2; ;數(shù)組數(shù)組 2 2 長度,入口參數(shù)長度,入口參數(shù) CALLCALL SUMSUM; ;調(diào)用求和子程序調(diào)用求和子程序 RE

28、TRET; ;無參數(shù)段內(nèi)返回?zé)o參數(shù)段內(nèi)返回 MAINMAIN ENDPENDP SUMSUM PROCPROC NEARNEAR; ;子程序子程序 XORXOR AX,AXAX,AX;AX;AX 清清 0 0 L1:ADDL1:ADD AX,WORDAX,WORD PTRSIPTRSI; ;加數(shù)組元素加數(shù)組元素 INCINC SISI; ;對對 SISI 進行加進行加 1 1 INCINC SISI; ;對對 SISI 進行加進行加 1 1 LOOPLOOP L1L1; ;結(jié)束結(jié)束 L1L1 MOVMOV WORDWORD PTRSI,AXPTRSI,AX ; ;數(shù)組和送入數(shù)組和送入 SUMS

29、UM MOVMOV AH,4CHAH,4CH; ;準(zhǔn)備結(jié)束程序準(zhǔn)備結(jié)束程序 INTINT 21H21H; ;中斷程序運行中斷程序運行 RETRET; ;無參數(shù)段內(nèi)返回?zé)o參數(shù)段內(nèi)返回 SUMSUM ENDPENDP; ;終止求和子程序終止求和子程序 CODECODE ENDSENDS ENDEND STARTSTART 2 編譯、連接、裝載 3u2000 查看是否裝載成功 4 E *:0000,輸入三個字?jǐn)?shù)據(jù)(數(shù)組 1 的數(shù)據(jù)) 5 E *:0008,輸入三個字?jǐn)?shù)據(jù)(數(shù)組 2 的數(shù)據(jù)) 6 運行程序 7 查看結(jié)果,結(jié)果存放在*:0006(數(shù)組 1 的累加和)和 *:000E 單元(數(shù)組 2 的累

30、加和) 實驗實驗 2 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:MOVSTART:MOV CX,001AHCX,001AH MOVMOV BL,41HBL,41H MOVMOV AH,01HAH,01H A1:MOVA1:MOV AL,BLAL,BL INTINT 10H10H INCINC BLBL PUSHPUSH CXCX MOVMOV C

31、X,0FFFFHCX,0FFFFH A2:LOOPA2:LOOP A2A2 POPPOP CXCX DECDEC CXCX JNZJNZ A1A1 INTINT 03H03H CODECODE ENDSENDS ENDEND STARTSTART 2 編譯、連接、裝載 3 運行程序并觀察結(jié)果 四四 實驗結(jié)果實驗結(jié)果 1.查看程序是否在如成功,結(jié)果如圖(4-1)所示: 圖 4-1 數(shù)據(jù)載入成功 2.輸入數(shù)據(jù),如圖(4-2)所示: 圖 4-2 輸入數(shù)據(jù) 3.運行程序并查看數(shù)組 1 和數(shù)組 2 的結(jié)果,如圖(4-3)所示: 圖 4-3 程序結(jié)果數(shù)組 1 和數(shù)組 2 實驗實驗 2 2(結(jié)果)(結(jié)果)

32、1. 載入程序,如圖(4-4) 2. 運行程序,如圖(4-5) 五五 思考與總結(jié)思考與總結(jié) 本次實驗我們做得是子程序設(shè)計實驗。主要掌握子程序的結(jié)構(gòu) 和分支程序的設(shè)計、調(diào)試方法。 這次實驗,我有一些不懂的地方,但是通過老師給的課件將所 有的程序都加以注釋,這樣使我對整個實驗的代碼都了解了,加深 了我對分支實驗各方面知識點的理解。 實驗八實驗八 顯示程序?qū)嶒烇@示程序?qū)嶒?一一 實驗?zāi)康膶嶒災(zāi)康?1.了解 INT 10H 各功能快的作用及用法。 2.掌握字符方式下 PC 機顯示器顯示控制。 二二 實驗設(shè)備實驗設(shè)備 TDN86/51 或 TDN86/88 教學(xué)實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容

33、及步驟 1、連接試驗箱 2、打開實驗環(huán)境 3、輸入源代碼流程圖(如下) STACKSTACK SEGMENTSEGMENT STACKSTACK ; ;堆棧段定義堆棧段定義 DWDW 6464 DUP(?)DUP(?) ; ;重復(fù)重復(fù) 6464 次次 STACKSTACK ENDSENDS ; ;段定義結(jié)束段定義結(jié)束 CODECODE SEGMENTSEGMENT ; ;存放在堆空間中的代碼段存放在堆空間中的代碼段 ASSUMEASSUME CS:CODECS:CODE ; ;段分配語句(偽指令)段分配語句(偽指令) START:START:MOVMOV CX,001AHCX,001AH ;

34、;顯示字符個數(shù)(顯示字符個數(shù)(2626)送入)送入 CXCX MOVMOV BL,41HBL,41H ; ;顯示字符顯示字符AA MOVMOV AH,01HAH,01H ; ;顯示一個字符顯示一個字符 A1:A1: MOVMOV AL,BLAL,BL INTINT 10H10H INCINC BLBL ; ;顯示下一個字符顯示下一個字符 PUSHPUSH CXCX MOVMOV CX,0FFFFHCX,0FFFFH A2:A2: LOOPLOOP A2A2 POPPOP CXCX DECDEC CXCX JNZJNZ A1A1 INTINT 03H03H CODECODE ENDSENDS E

35、NDEND START4.START4. 5、連接 6、裝入程序 四四 實驗結(jié)果實驗結(jié)果 1、編譯成功: 2、鏈接成功: 3、裝入程序成功: 4、實驗運行結(jié)果截圖 五五 思考與總結(jié):思考與總結(jié): 通過此次試驗,我了解 INT 10H 各功能塊的作用及用法并掌握 了字符方式下 PC 機顯示器顯示控制,對其有了初步的了解。在實驗 當(dāng)中雖然遇到很多的問題但是老師都一一為我解答了,讓我順利完 成了實驗。在以后的學(xué)習(xí)過程中還需要注意此類問題,真正的掌握 這些知識點,做到靈活運用自己所掌握的知識。 實驗九實驗九 中斷特性及中斷特性及 8259 應(yīng)用編程實驗應(yīng)用編程實驗 一一 實驗?zāi)康膶嶒災(zāi)康?1認識 TD

36、N86/51 系統(tǒng)的中斷特性 2.掌握 8259 中斷控制器的工作原理 3.掌握 8259 可編程中斷控制器的應(yīng)用編程 二二 實驗設(shè)備實驗設(shè)備 1.TDN86/51 或 TDN86/88 教學(xué)實驗系統(tǒng)一臺 2.排線、導(dǎo)線一根 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 實驗實驗 1 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:PUSHSTART:PUSH

37、DSDS; ;保存數(shù)據(jù)段保存數(shù)據(jù)段 MOVMOV AX,0000HAX,0000H; ;將將 AXAX 清零,將清零,將 00000000 傳給傳給 AXAX MOVMOV DS,AXDS,AX; ;數(shù)據(jù)段清零,將數(shù)據(jù)段清零,將 AXAX 內(nèi)容傳給內(nèi)容傳給 DSDS,所以,所以 DSDS 清零清零 MOVMOV AX,OFFSETAX,OFFSET IRQ7IRQ7; ;取中斷程序入口地址(相對地址)取中斷程序入口地址(相對地址) ADDADD AX,2000HAX,2000H; ;加裝載時加裝載時 IP=2000IP=2000 地址(絕對地址)地址(絕對地址) MOVMOV SI,003CH

38、SI,003CH; ;填填 82598259 中斷中斷 7 7 中斷矢量,把中斷矢量,把 003CH003CH 內(nèi)容傳給內(nèi)容傳給 SISI MOVMOV SI,AXSI,AX; ;填偏移量矢量,將填偏移量矢量,將 AXAX 地址傳給地址傳給 SISI MOVMOV AX,0000HAX,0000H; ;地址段地址段 CS=0000HCS=0000H MOVMOV SI,003EHSI,003EH; ;將將 003E003E 傳給傳給 SISI MOVMOV SI,AXSI,AX; ;填地址段矢量,將填地址段矢量,將 AXAX 地址傳給地址傳給 SISI CLICLI; ;關(guān)中斷關(guān)中斷 POPP

39、OP DSDS; ;彈棧彈棧 ININ AL,21HAL,21H; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內(nèi)容給端口內(nèi)容給 ALAL ANDAND AL,7FHAL,7FH; ;開開 82598259 中斷中斷 7 7 OUTOUT 21H,AL21H,AL; ;將將 ALAL 內(nèi)容回傳給內(nèi)容回傳給 21H21H MOVMOV CX,000AHCX,000AH; ;循環(huán)循環(huán) 1010 次次 A1:CMPA1:CMP CX,0000HCX,0000H; ;判斷是否完成循環(huán)判斷是否完成循環(huán) JNZJNZ A2A2; ;跳轉(zhuǎn)跳轉(zhuǎn) ININ AL,21HAL,21H

40、; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內(nèi)容給端口內(nèi)容給 ALAL OROR AL,80HAL,80H; ;關(guān)關(guān) 82598259 中斷中斷 7 7 OUTOUT 21H,AL21H,AL; ;將將 ALAL 內(nèi)容回傳給內(nèi)容回傳給 21H21H STISTI HLTHLT A2:STIA2:STI JMPJMP A1A1; ;無條件跳轉(zhuǎn)至無條件跳轉(zhuǎn)至 A1A1 IRQ7:IRQ7:MOVMOV AX,0137HAX,0137H; ;中斷程序入口中斷程序入口 INTINT 10H10H; ;返回操作程序,結(jié)束程序運行返回操作程序,結(jié)束程序運行 MOVMOV

41、AX,0120HAX,0120H; ;中斷程序出口中斷程序出口 INTINT 10H10H; ;返回操作程序,結(jié)束程序運行返回操作程序,結(jié)束程序運行 DECDEC CXCX;CX;CX 自減自減 1 1 MOVMOV AL,20HAL,20H; ;將將 2020 傳給傳給 ALAL OUTOUT 20H,AL20H,AL; ;將將 ALAL 回傳給回傳給 2020 CLICLI IRETIRET CODECODE ENDSENDS ENDEND STARTSTART 2. 編譯、連接、裝載 3.G=0000:2000 運行程序 4.重復(fù)按 KK2 微動開關(guān),顯示屏上應(yīng)用“7”來響應(yīng),直到按 1

42、0 次 后,系統(tǒng)處于停機狀態(tài)。 實驗實驗 2 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:PUSHSTART:PUSH DSDS; ;保存數(shù)據(jù)段保存數(shù)據(jù)段 MOVMOV AX,0000HAX,0000H; ;將將 AXAX 清零,將清零,將 00000000 傳給傳給 AXAX MOVMOV DS,AXDS,AX; ;數(shù)據(jù)段清零,將數(shù)據(jù)段清零,將

43、AXAX 內(nèi)容傳給內(nèi)容傳給 DSDS,所以,所以 DSDS 清零清零 MOVMOV AX,OFFSETAX,OFFSET IRQ6IRQ6; ;取中斷程序入口地址(相對地址)取中斷程序入口地址(相對地址) ADDADD AX,2000HAX,2000H; ;加裝載時加裝載時 IP=2000IP=2000 地址(絕對地址)地址(絕對地址) MOVMOV SI,0038HSI,0038H; ;填填 82598259 中斷中斷 6 6 中斷矢量,把中斷矢量,把 0038H0038H 內(nèi)容傳給內(nèi)容傳給 SISI MOVMOV SI,AXSI,AX; ;填偏移量矢量,將填偏移量矢量,將 AXAX 地址傳

44、給地址傳給 SISI MOVMOV AX,0000HAX,0000H; ;地址段地址段 CS=0000HCS=0000H MOVMOV SI,003AHSI,003AH; ;將將 003A003A 傳給傳給 SISI MOVMOV SI,AXSI,AX; ;填地址段矢量,將填地址段矢量,將 AXAX 地址傳給地址傳給 SISI CLICLI; ;關(guān)中斷關(guān)中斷 POPPOP DSDS; ;彈棧彈棧 ININ AL,21HAL,21H; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內(nèi)容給端口內(nèi)容給 ALAL ANDAND AL,0BFHAL,0BFH; ;開開 825

45、98259 中斷中斷 6 6 OUTOUT 21H,AL21H,AL; ;將將 ALAL 內(nèi)容回傳給內(nèi)容回傳給 21H21H MOVMOV CX,000AHCX,000AH; ;循環(huán)循環(huán) 1010 次次 A1:CMPA1:CMP CX,0000HCX,0000H; ;判斷是否完成循環(huán)判斷是否完成循環(huán) JNZJNZ A2A2; ;跳轉(zhuǎn)跳轉(zhuǎn) ININ AL,21HAL,21H; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內(nèi)容給端口內(nèi)容給 ALAL OROR AL,40HAL,40H; ;關(guān)關(guān) 82598259 中斷中斷 6 6 OUTOUT 21H,AL21H,AL

46、; ;將將 ALAL 內(nèi)容回傳給內(nèi)容回傳給 21H21H STISTI HLTHLT A2:STIA2:STI JMPJMP A1A1; ;無條件跳轉(zhuǎn)至無條件跳轉(zhuǎn)至 A1A1 IRQ6:IRQ6:MOVMOV AX,0136HAX,0136H; ;中斷程序入口中斷程序入口 INTINT 10H10H; ;返回操作程序,結(jié)束程序運行返回操作程序,結(jié)束程序運行 MOVMOV AX,0120HAX,0120H; ;中斷程序出口中斷程序出口 INTINT 10H10H; ;返回操作程序,結(jié)束程序運行返回操作程序,結(jié)束程序運行 DECDEC CXCX;CX;CX 自減自減 1 1 MOVMOV AL,2

47、0HAL,20H; ;將將 2020 傳給傳給 ALAL OUTOUT 20H,AL20H,AL; ;將將 ALAL 回傳給回傳給 2020 CLICLI IRETIRET CODECODE ENDSENDS ENDEND START2START2 編譯、連接、裝載編譯、連接、裝載 2. 編譯、連接、裝載 3.G=0000:2000 運行程序 4.重復(fù)按 KK2 微動開關(guān),顯示屏上應(yīng)用“6”來響應(yīng),直到按 10 次 后,系統(tǒng)處于停機狀態(tài)。 四四 實驗結(jié)果實驗結(jié)果 1.程序載入成功,結(jié)果如圖(4-1)所示: 圖 4-1 數(shù)據(jù)載入成功 2.按 KK2 微動開關(guān)屏上顯示“7”數(shù)據(jù),如圖(4-2)所示

48、: 圖 4-2 結(jié)果顯示 實驗實驗 2 2(結(jié)果)(結(jié)果) 1.程序載入成功,結(jié)果如圖(4-3)所示: 圖 4-3 數(shù)據(jù)載入成功 2.按 KK2 微動開關(guān)屏上顯示“6”數(shù)據(jù),如圖(4-4)所示: 圖 4-4 結(jié)果顯示 五五 思考與總結(jié)思考與總結(jié) 通過本次實驗我認識 TDN86/51 系統(tǒng)的中斷特性并掌握 8259 中斷控制器的工作原理,實驗當(dāng)中遇到的一些問題,通過老師的點 撥與同學(xué)之間的互相幫助、互相學(xué)習(xí)得到了解決,今后要注意將學(xué) 習(xí)解決此類問題的方法,以后遇到也能輕松解決。 實驗十實驗十 8255 并行接口應(yīng)用實驗并行接口應(yīng)用實驗 一一 實驗?zāi)康膶嶒災(zāi)康?1學(xué)習(xí)并掌握 8255 的各種工作方

49、式及其應(yīng)用 2.學(xué)習(xí)載系統(tǒng)接口實驗單元上構(gòu)造實驗電路 二二 實驗設(shè)備實驗設(shè)備 1.TDN86/51 或 TDN86/88 教學(xué)實驗系統(tǒng)一臺 2.排線、導(dǎo)線若干 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 實驗實驗 1 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:START: MOVMOV AL,82HAL,82H; ;設(shè)設(shè) 82558255 方式字方式字

50、A A 位輸出,位輸出,B B 口位輸入??谖惠斎?。 OUTOUT 63H,AL63H,AL; ;將將 ALAL 內(nèi)容傳給控制寄存器內(nèi)容傳給控制寄存器 A1:A1: ININ AL,61HAL,61H; ;將輸入口將輸入口 B B 口內(nèi)容傳給口內(nèi)容傳給 ALAL OUTOUT 60H,AL60H,AL; ;將將 ALAL 內(nèi)容傳給輸出口內(nèi)容傳給輸出口 A A 口完成輸入口完成輸入/ /輸出功能輸出功能 JMPJMP A1A1; ;無條件跳轉(zhuǎn)到無條件跳轉(zhuǎn)到 A1A1,循環(huán),循環(huán) CODECODE ENDSENDS ENDEND STARTSTART 2. 編譯、連接、裝載 3.G=0000:20

51、00 運行程序 實驗實驗 2 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:START: MOVMOV AL,90HAL,90H; ;設(shè)設(shè) 82558255 方式字方式字 B B 位輸出,位輸出,A A 口位輸入。口位輸入。 OUTOUT 63H,AL63H,AL; ;將將 ALAL 內(nèi)容傳給控制寄存器內(nèi)容傳給控制寄存器 A1:A1: ININ AL

52、,60HAL,60H; ;將輸入口將輸入口 A A 口內(nèi)容傳給口內(nèi)容傳給 ALAL OUTOUT 61H,AL61H,AL; ;將將 ALAL 內(nèi)容傳給輸出口內(nèi)容傳給輸出口 B B 口完成輸入口完成輸入/ /輸出功能輸出功能 JMPJMP A1A1; ;無條件跳轉(zhuǎn)到無條件跳轉(zhuǎn)到 A1A1,循環(huán),循環(huán) CODECODE ENDSENDS ENDEND STARTSTART 2. 編譯、連接、裝載 3.G=0000:2000 運行程序 四四 實驗結(jié)果實驗結(jié)果 1.程序載入成功,結(jié)果如圖(4-1)所示: 圖 4-1 數(shù)據(jù)載入成功 2.實驗結(jié)果,如圖(4-2)所示: 圖 4-2 結(jié)果顯示 實驗實驗 2 2(結(jié)果)(結(jié)果) 1.程序載入成功,結(jié)果如圖(4-3)所示: 圖 4-3 數(shù)據(jù)載入成功 2. 實驗結(jié)果,如圖(4-4)所示: 圖 4-4 結(jié)果顯示 五五 思考與總結(jié)思考與總結(jié) 通過本次實驗我學(xué)習(xí)到了載系統(tǒng)接口實驗單元上構(gòu)造以及很簡 單的連接方法,本次實驗比較簡單,在不斷的對照,不斷的排解掉 一些因為粗心犯下的錯誤之后,解決了遇到的一些困難,順利完成 了實驗。 實驗十一實驗十一 8253 定時定時/計數(shù)器應(yīng)用實驗計數(shù)器應(yīng)用實驗 一、一、 實驗?zāi)康膶嶒災(zāi)康?1、 熟悉 8253 在系統(tǒng)中的

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論