版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、1 第 1 頁 共 87 頁 實實 驗驗 報報 告告 課程名稱課程名稱 微機原理與接口技術(shù)微機原理與接口技術(shù) 專專 業(yè)業(yè) 計計 科科 班班 級級 五五 班班 姓姓 名名 胡胡 益益 學學 號號 指導教師指導教師 朱紅偉朱紅偉 實驗成績實驗成績 2 第 2 頁 共 87 頁 目錄目錄 實驗一實驗一 系統(tǒng)認識實驗系統(tǒng)認識實驗 .3 實驗二實驗二 數(shù)碼轉(zhuǎn)換編程及程序調(diào)試數(shù)碼轉(zhuǎn)換編程及程序調(diào)試 .8 實驗三實驗三 運算類編程實驗運算類編程實驗 .12 實驗四實驗四 分支程序設計實驗分支程序設計實驗 .17 實驗五實驗五 分支程序設計實驗分支程序設計實驗 2 .23 實驗六實驗六 循環(huán)程序設計循環(huán)程序設
2、計 .31 實驗七實驗七 子程序設計子程序設計 .39 實驗八實驗八 顯示程序?qū)嶒烇@示程序?qū)嶒?.45 實驗九實驗九 中斷特性及中斷特性及 8259 應用編程實驗應用編程實驗 .49 實驗十實驗十 8255 并行接口應用實驗并行接口應用實驗 .55 實驗十一實驗十一 8253 定時定時/計數(shù)器應用實驗計數(shù)器應用實驗 .60 實驗十二實驗十二 8253 定時器應用實驗定時器應用實驗 .66 實驗十三實驗十三 A/D 轉(zhuǎn)換實驗轉(zhuǎn)換實驗.72 實驗十四實驗十四 D/A 轉(zhuǎn)換實驗轉(zhuǎn)換實驗.77 實驗十五實驗十五 8255 鍵盤及顯示接口實驗鍵盤及顯示接口實驗 .81 實驗十六實驗十六 步進電機實驗步進
3、電機實驗 .85 3 第 3 頁 共 87 頁 實驗一實驗一 系統(tǒng)認識實驗系統(tǒng)認識實驗 一一 實驗目的實驗目的 掌握 TDN86/51 或 TDN86、88 教學系統(tǒng)的基本操作。 二二 實驗設備實驗設備 TDN86/51 或 TDN86、88 教學實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1.使用串行通訊電纜將實驗系統(tǒng)與 PC 微機相連。 2.打開實驗環(huán)境 WMD86. 3.輸入源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK ; ; DWDW 6464 DUP(?);DUP(?); STACKSTACK ENDSENDS CODECODESEGMEN
4、T;SEGMENT; ASSUMEASSUME CS:CODECS:CODE START: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 命
5、令進行反匯編,檢查程序是否正確裝入。如圖(4- 1) 4 第 4 頁 共 87 頁 圖(4-1)檢查程序是否正確裝入 2.當發(fā)現(xiàn)源程序輸入錯誤或需調(diào)試,輸入指令 A 來修改,如修改 2000 句 MOV DI,3500。如圖(4-2) 圖(4-2)修改 2000 句 3.對程序進行連續(xù)運行。結(jié)果如圖(4-3) 5 第 5 頁 共 87 頁 圖(4-3)連續(xù)運行 6 第 6 頁 共 87 頁 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)容 7 第 7 頁 共 87 頁 五五 思考與總結(jié)思考與總結(jié) 通過本次實驗,
6、使我對 TDN86/88 教學系統(tǒng)的基本操作有了一定 的了解,對實驗有了更深的認識,更了解了自己所學的知識應該如 何應用。期間也遇到了不少困難,不過在老師和同學幫助之下都解 決了問題順利完成了實驗。 8 第 8 頁 共 87 頁 實驗二實驗二 數(shù)碼轉(zhuǎn)換編程及程序調(diào)試數(shù)碼轉(zhuǎn)換編程及程序調(diào)試 一一 實驗目的實驗目的 1.掌握不同進制數(shù)及編碼相互轉(zhuǎn)換的程序設計方法,加深對數(shù)碼轉(zhuǎn) 換的理解。 2.熟悉鍵盤使用方法。 3.熟悉調(diào)試程序的方法。 二二 實驗設備實驗設備 TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1.連接計算機與外設 2 輸入程序并檢查無誤
7、,經(jīng)匯編、連接后裝入程序。 STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:START:MOVMOV CX,0004HCX,0004H ; ;設置循環(huán)次數(shù)設置循環(huán)次數(shù) MOVMOV DI,3500HDI,3500H ; ;將立即數(shù)將立即數(shù) 35003500 傳送給傳送給 DIDI 寄存器寄存器 MOVMOV DX,DIDX,DI ;將;將35003500單元的內(nèi)容傳送給
8、單元的內(nèi)容傳送給 DxDx 寄存器寄存器 203B203B A1:A1: MOVMOV AX,DXAX,DX ;將;將 DXDX 寄存器的內(nèi)容傳送給寄存器的內(nèi)容傳送給 AxAx 寄存器寄存器 AX=203BAX=203B ANDAND AX,000FHAX,000FH ;與操作。作用是:高;與操作。作用是:高 1212 位全部屏蔽掉,只保留原來的低位全部屏蔽掉,只保留原來的低 四位。結(jié)果存放在四位。結(jié)果存放在 AXAX 中。中。AX=000BHAX=000BH CMPCMP AL,0AHAL,0AH ;和;和 1010 比較比較 JBJB A2A2 ;JMPJMP ifif BelowBelo
9、w 如果如果 ALAL 小于小于 1010,那么跳轉(zhuǎn)到,那么跳轉(zhuǎn)到 A2A2; 加上加上 3030,轉(zhuǎn)換為對應的,轉(zhuǎn)換為對應的 ASCIIASCII 碼,結(jié)果存放在碼,結(jié)果存放在 ALAL ADDADD AL,07HAL,07H ;意味著;意味著 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+
10、0AH,AL ;將結(jié)果傳送到;將結(jié)果傳送到 3500+A,3500+A,即即350A350A單元單元 第一次循環(huán)的時第一次循環(huán)的時 候存放的是最地位的候存放的是最地位的 ASCIIASCII 碼碼 INCINC DIDI ;DIDI 加加 1 1,變?yōu)?,變?yōu)?35013501 9 第 9 頁 共 87 頁 PUSHPUSH CXCX ;將;將 CXCX 的內(nèi)容壓入堆棧,目的是為了保存的內(nèi)容壓入堆棧,目的是為了保存 CXCX 的原始內(nèi)容的原始內(nèi)容 MOVMOV CL,04HCL,04H ;將立即數(shù);將立即數(shù) 0404 傳送給傳送給 CLCL 寄存器寄存器 SHRSHR DX,CLDX,CL ;將
11、;將 DXDX 寄存器右移寄存器右移 CLCL 位。也就是右移位。也就是右移 4 4 位。位。DXDX 內(nèi)容由內(nèi)容由 203B203B 變?yōu)樽優(yōu)?02030203 POPPOP CXCX ;恢復;恢復 CXCX 的內(nèi)容。的內(nèi)容。 LOOPLOOP A1A1 ;循環(huán);循環(huán) A1A1,直到,直到 CXCX 為為 0 0 CODECODE ENDSENDS ENDEND STARTSTART 3.在 3500-3501H 單元中存入四位十六進制數(shù) 203B,即:E3500, 并輸入 3B、20。 4.D350A,輸入數(shù)字與結(jié)果 ASC碼對應順序相反。 5.反復調(diào)試幾組數(shù)據(jù),考察程序的正確性。 四四
12、實驗結(jié)果實驗結(jié)果 1.在 3500-3501 單元中存入四位十六進制數(shù) 203B。如圖(4-1) 圖 4-1 存入十六進制數(shù) 10 第 10 頁 共 87 頁 2.運行程序。如圖(4-2) 圖 4-2 G=0000:2000 運行程序 3.顯示結(jié)果.如圖(4-3) 圖 4-3 結(jié)果 11 第 11 頁 共 87 頁 五五 思考與總結(jié)思考與總結(jié) 1.在十六進制數(shù)轉(zhuǎn)換為 ASCII 碼時,存轉(zhuǎn)換結(jié)果后,為什么要把 DX 向右移四次? 答:對存放空間的要求,因為對于十六進制每四個 ASCII 碼從右往 左數(shù)是 4 個一次,算十六進制的一個位次,因此十六進制轉(zhuǎn)換成 ASCII 碼要把 DX 向右移四次
13、。 2.自己的實驗感受 本次實驗是將十六進制數(shù)轉(zhuǎn)換為 ASCII 碼。首先經(jīng)過 CPU 處理 后的十六進制數(shù)存放于起始地址為 3500H 的內(nèi)存單元中,把它們轉(zhuǎn) 換成 ASCII 碼后,再分別存入起始地址為 350AH 的內(nèi)存單元中。 12 第 12 頁 共 87 頁 實驗三實驗三 運算類編程實驗運算類編程實驗 一一 實驗目的實驗目的 1.掌握使用運算類指令編程及調(diào)試方法。 2.掌握運算類指令對各狀態(tài)標志位的影響及其測試方法 二二 實驗設備實驗設備 TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1.連接計算機與外設 2.輸入程序并檢查無誤,經(jīng)匯編
14、、連接后裝入程序。 STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS DATADATA SEGMENTSEGMENT XLXL DWDW ? ? XHXH DWDW ? ? YLYL DWDW ? ? YHYH DWDW ? ? ZLZL DWDW ? ? ZHZH DWDW ? ? DATADATA ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODE,DS:DATACS:CODE,DS:DATA START:MOVSTART:M
15、OV 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 ENDEND STARTSTART 13 第 13 頁 共 87 頁 3.用 U0000:2000 查看 MOV AX,XXXX(DATA)語句,即得到數(shù)據(jù)段段地 址 CS:XXXX 用 E 命令 EXXXX:0000給 XL,XH,YL
16、,YH 賦值存入二進 制數(shù) A0 65 15 00 和 9E B7 21 00。 4.G=0000: 2000,運行以上程序。 5.DXXXX:0008,顯示計算結(jié)果。 6.反復調(diào)試幾組數(shù)據(jù),考察程序的正確性。 14 第 14 頁 共 87 頁 四四 實驗結(jié)果實驗結(jié)果 1.查看 MOV AX,XXXX 語句,地道段地址。如圖(4-1) 圖 4-1 段地址 2.給 XL,XH,YL,YH 賦值二進制數(shù)。如圖(4-2) 圖 4-2 賦值數(shù) 15 第 15 頁 共 87 頁 3.運行程序并查看結(jié)果。如圖(4-3) 圖 4-3 實驗結(jié)果顯示 16 第 16 頁 共 87 頁 五五 思考與總結(jié)思考與總結(jié)
17、 本次實驗我們做得是運算類編程實驗中二進制雙精度加法運算。 雙精度運算,是利用累加器 AX,先求低十六位和,并存入低址單元, 后求高 16 位和,再存入高址存儲單元。由于低位和可能向高位有進 位,因而高位字相加語句需用 ADC 指令,則低位相加有進位時, CF=1,高位字相加時,同時加上 CF 中的 1。這次實驗有很多細節(jié)需 要注意,在不注意的情況之下我們出了很多錯誤,后來在老師的指 導幫助下完成了實驗。 17 第 17 頁 共 87 頁 實驗四實驗四 分支程序設計實驗分支程序設計實驗 一一 實驗目的實驗目的 1.掌握分支程序的結(jié)構(gòu)。 2.掌握分支程序的設計、調(diào)試方法。 二二 實驗設備實驗設備
18、 TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1.內(nèi)容: 設計一數(shù)據(jù)塊間的搬移程序 設計思想:程序要求把內(nèi)存中一數(shù)據(jù)區(qū)(稱為源數(shù)據(jù)塊)傳送到 另一存儲區(qū)(稱為目的數(shù)據(jù)塊) 。 注意: 當源數(shù)據(jù)塊首址目的塊首址時,從數(shù)據(jù)塊首地址開始傳送數(shù)據(jù)。 當源數(shù)據(jù)塊首址目的塊首址時,應從數(shù)據(jù)塊首地址開始 傳送數(shù)據(jù)。而當源數(shù)據(jù)塊首址目的塊首址時,應從數(shù)據(jù)塊首地址開始傳 送數(shù)據(jù)。而當源數(shù)據(jù)塊首址200 結(jié)束 程序源代碼: STACKSTACK SEGMENTSEGMENT DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CO
19、DECODE 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 進行加一在傳送給進行加一在傳送給 BLBL MULMUL BLBL ;將;將 ALA
20、L 與與 BLBL 相乘并將結(jié)果傳送給相乘并將結(jié)果傳送給 AXAX ADDADD DX,AXDX,AX ;AXAX 與與 DXDX 相加并將結(jié)果傳給相加并將結(jié)果傳給 DXDX 33 第 33 頁 共 87 頁 CMPCMP AX,00C8HAX,00C8H ;用目的操作數(shù)減去源操作數(shù),;用目的操作數(shù)減去源操作數(shù),AXAX 減去減去 00C8H00C8H,比較,比較 AXAX 數(shù)是否大于數(shù)是否大于 00C8H00C8H JNAJNA A1A1 ;當;當 CF=1CF=1 或或 ZF=1ZF=1 時進行跳轉(zhuǎn),如跳轉(zhuǎn)則進行時進行跳轉(zhuǎn),如跳轉(zhuǎn)則進行 A1,A1,如不跳轉(zhuǎn)則進行如不跳轉(zhuǎn)則進行 A2A2
21、A2:A2: INTINT 03H03H ;對操作數(shù)加;對操作數(shù)加 1 1 CODECODE ENDSENDS ENDEND STARTSTART 34 第 34 頁 共 87 頁 實驗二:實驗二: 流程圖: 開始 數(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 35 第 35 頁 共 87 頁 1.程序源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SE
22、GMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:START: MOVMOV DI,3000HDI,3000H; ;設數(shù)據(jù)區(qū)首址,將設數(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 A
23、L,DIAL,DI; ;將將 DIDI 的值傳給的值傳給 ALAL TESTTEST AL,80HAL,80H ; ;判斷數(shù)據(jù)首位是否為判斷數(shù)據(jù)首位是否為 1 1 JEJE A2A2; ;判斷,當判斷,當 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
24、 03H03H; ;對操作數(shù)進行加對操作數(shù)進行加 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 36 第 36 頁 共 87 頁 四四 實驗結(jié)果實驗結(jié)果 1.實驗一結(jié)果如圖(4-1)所示: 圖 4-1 實驗結(jié)果為 045FH 實驗二(結(jié)果): 1.輸入數(shù)據(jù),結(jié)果如圖(4-2)所示: 圖 4-2 數(shù)據(jù)輸入 37 第 37 頁 共 87
25、 頁 2.運行程序,查看結(jié)果如圖(4-3)所示: 38 第 38 頁 共 87 頁 五五 思考與總結(jié)思考與總結(jié) 這次實驗我們做得時關于循環(huán)程序的實驗: S=1+2*3+3*4+4*5+N(N+1) ,直到 N*(N+1)項大于 200 為止。 本次實驗我通過觀察流程圖來自己設計有關程序,這樣使我對 循環(huán)結(jié)構(gòu)有了更深的了解,加深了我對乘法指令和加法指令的理解。 掌握了循環(huán)結(jié)構(gòu)程序設計的方法,知道如何對循環(huán)程序進行調(diào)試。 在實驗過程中也遇到了不少的困難,使實驗無法繼續(xù)進行下去,不 過在老師的幫助下解決了困難,順利完成了實驗,使我受益匪淺。 39 第 39 頁 共 87 頁 實驗七實驗七 子程序設計
26、子程序設計 一一 實驗目的實驗目的 1學習子程序的定義和調(diào)用方法 2.掌握子程序的結(jié)構(gòu) 3.熟練掌握子程序的程序設計、編制及調(diào)用 二二 實驗設備實驗設備 TDN86/51 或 TDN86/88 教學實驗系統(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 SEGMENTSE
27、GMENT STACKSTACK SASA DWDW 5050 DUP(?)DUP(?) TOPTOP EQUEQU LENGTHLENGTH SASA STACKSTACK ENDSENDS 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ù)據(jù)段數(shù)據(jù)設置 MOVMOV DS,AXDS,AX; ;將將 AXAX 中的內(nèi)容傳送給中的內(nèi)容傳
28、送給 DSDS MOVMOV AX,STACKAX,STACK MOVMOV SS,AXSS,AX; ;將將 AXAX 中的內(nèi)容傳送給中的內(nèi)容傳送給 SSSS MOVMOV SP,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)用求和子程序 40 第 40 頁 共 87 頁 LEALEA SI,ARY2SI,ARY2; ;數(shù)組數(shù)組 2 2 首地址,入口
29、參數(shù)首地址,入口參數(shù) MOVMOV CX,LENGTHCX,LENGTH ARY2ARY2; ;數(shù)組數(shù)組 2 2 長度,入口參數(shù)長度,入口參數(shù) CALLCALL SUMSUM; ;調(diào)用求和子程序調(diào)用求和子程序 RETRET; ;無參數(shù)段內(nèi)返回無參數(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 INC
30、INC SISI; ;對對 SISI 進行加進行加 1 1 LOOPLOOP L1L1; ;結(jié)束結(jié)束 L1L1 MOVMOV WORDWORD PTRSI,AXPTRSI,AX ; ;數(shù)組和送入數(shù)組和送入 SUMSUM MOVMOV AH,4CHAH,4CH; ;準備結(jié)束程序準備結(jié)束程序 INTINT 21H21H; ;中斷程序運行中斷程序運行 RETRET; ;無參數(shù)段內(nèi)返回無參數(shù)段內(nèi)返回 SUMSUM ENDPENDP; ;終止求和子程序終止求和子程序 CODECODE ENDSENDS ENDEND STARTSTART 2 編譯、連接、裝載 3u2000 查看是否裝載成功 4 E *:
31、0000,輸入三個字數(shù)據(jù)(數(shù)組 1 的數(shù)據(jù)) 5 E *:0008,輸入三個字數(shù)據(jù)(數(shù)組 2 的數(shù)據(jù)) 6 運行程序 7 查看結(jié)果,結(jié)果存放在*:0006(數(shù)組 1 的累加和)和 *:000E 單元(數(shù)組 2 的累加和) 實驗實驗 2 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODECS:CODE START:MOVSTART:MOV CX,001AHCX,001AH MOVMO
32、V BL,41HBL,41H MOVMOV AH,01HAH,01H 41 第 41 頁 共 87 頁 A1:MOVA1:MOV AL,BLAL,BL INTINT 10H10H INCINC BLBL PUSHPUSH CXCX MOVMOV CX,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é)果如圖
33、(4-1)所示: 圖 4-1 數(shù)據(jù)載入成功 42 第 42 頁 共 87 頁 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é)果) 1. 載入程序,如圖(4-4) 43 第 43 頁 共 87 頁 2. 運行程序,如圖(4-5) 44 第 44 頁 共 87 頁 五五 思考與總結(jié)思考與總結(jié) 本次實驗我們做得是子程序設計實驗。主要掌握子程序的結(jié)構(gòu) 和分支程序的設計、調(diào)試方法。 這次實驗,我有一些不懂的地方,但是通過老師給的課件將所 有的程序都加以注
34、釋,這樣使我對整個實驗的代碼都了解了,加深 了我對分支實驗各方面知識點的理解。 45 第 45 頁 共 87 頁 實驗八實驗八 顯示程序?qū)嶒烇@示程序?qū)嶒?一一 實驗目的實驗目的 1.了解 INT 10H 各功能快的作用及用法。 2.掌握字符方式下 PC 機顯示器顯示控制。 二二 實驗設備實驗設備 TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 1、連接試驗箱 2、打開實驗環(huán)境 3、輸入源代碼流程圖(如下) STACKSTACK SEGMENTSEGMENT STACKSTACK ; ;堆棧段定義堆棧段定義 DWDW 6464 DUP(?)DUP(?
35、) ; ;重復重復 6464 次次 STACKSTACK ENDSENDS ; ;段定義結(jié)束段定義結(jié)束 CODECODE SEGMENTSEGMENT ; ;存放在堆空間中的代碼段存放在堆空間中的代碼段 ASSUMEASSUME CS:CODECS:CODE ; ;段分配語句(偽指令)段分配語句(偽指令) START:START:MOVMOV CX,001AHCX,001AH ; ;顯示字符個數(shù)(顯示字符個數(shù)(2626)送入)送入 CXCX MOVMOV BL,41HBL,41H ; ;顯示字符顯示字符AA MOVMOV AH,01HAH,01H ; ;顯示一個字符顯示一個字符 A1:A1:
36、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 ENDEND START4.START4. 5、連接 46 第 46 頁 共 87 頁 6、裝入程序 四四 實驗結(jié)果實驗結(jié)果 1、編譯成功: 2、鏈接成功: 3、裝入程序成功: 47 第 47 頁 共 87 頁 4、實
37、驗運行結(jié)果截圖 48 第 48 頁 共 87 頁 五五 思考與總結(jié):思考與總結(jié): 通過此次試驗,我了解 INT 10H 各功能塊的作用及用法并掌握 了字符方式下 PC 機顯示器顯示控制,對其有了初步的了解。在實驗 當中雖然遇到很多的問題但是老師都一一為我解答了,讓我順利完 成了實驗。在以后的學習過程中還需要注意此類問題,真正的掌握 這些知識點,做到靈活運用自己所掌握的知識。 49 第 49 頁 共 87 頁 實驗九實驗九 中斷特性及中斷特性及 8259 應用編程實驗應用編程實驗 一一 實驗目的實驗目的 1認識 TDN86/51 系統(tǒng)的中斷特性 2.掌握 8259 中斷控制器的工作原理 3.掌握
38、 8259 可編程中斷控制器的應用編程 二二 實驗設備實驗設備 1.TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 2.排線、導線一根 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 實驗實驗 1 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,0000
39、H; ;將將 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,003CHSI,003CH; ;填填 82598259 中斷中斷 7 7 中斷矢量,把中斷
40、矢量,把 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; ;關中斷關中斷 POPPOP DSDS; ;彈棧彈棧 ININ AL,21HAL,21H; ;讀讀 82
41、598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內(nèi)容給端口內(nèi)容給 ALAL ANDAND AL,7FHAL,7FH; ;開開 82598259 中斷中斷 7 7 OUTOUT 21H,AL21H,AL; ;將將 ALAL 內(nèi)容回傳給內(nèi)容回傳給 21H21H 50 第 50 頁 共 87 頁 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 中斷屏蔽字,把中
42、斷屏蔽字,把 21H21H 端口內(nèi)容給端口內(nèi)容給 ALAL OROR AL,80HAL,80H; ;關關 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 AX,0120HAX,0120H; ;中斷程序
43、出口中斷程序出口 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.重復按 KK2 微動開關,顯示屏上應用“7”來響應,直到按 10 次 后,系統(tǒng)處于停機狀態(tài)。 實驗實驗 2
44、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ù)段清零,將 AXAX 內(nèi)容傳給內(nèi)容傳給 DSDS,所以,所
45、以 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 51 第 51 頁 共 87 頁 MOVMOV SI,AXSI,AX; ;填偏移量矢量,將填偏移量矢量,將 AXAX 地址傳給地址傳給
46、SISI MOVMOV AX,0000HAX,0000H; ;地址段地址段 CS=0000HCS=0000H MOVMOV SI,003AHSI,003AH; ;將將 003A003A 傳給傳給 SISI MOVMOV SI,AXSI,AX; ;填地址段矢量,將填地址段矢量,將 AXAX 地址傳給地址傳給 SISI CLICLI; ;關中斷關中斷 POPPOP DSDS; ;彈棧彈棧 ININ AL,21HAL,21H; ;讀讀 82598259 中斷屏蔽字,把中斷屏蔽字,把 21H21H 端口內(nèi)容給端口內(nèi)容給 ALAL ANDAND AL,0BFHAL,0BFH; ;開開 82598259
47、中斷中斷 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; ;關關 82598259 中斷中斷 6 6 OUTOUT 21H,AL21H,AL; ;將將
48、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,20HAL,2
49、0H; ;將將 2020 傳給傳給 ALAL OUTOUT 20H,AL20H,AL; ;將將 ALAL 回傳給回傳給 2020 CLICLI IRETIRET CODECODE ENDSENDS ENDEND START2START2 編譯、連接、裝載編譯、連接、裝載 2. 編譯、連接、裝載 3.G=0000:2000 運行程序 4.重復按 KK2 微動開關,顯示屏上應用“6”來響應,直到按 10 次 后,系統(tǒng)處于停機狀態(tài)。 52 第 52 頁 共 87 頁 四四 實驗結(jié)果實驗結(jié)果 1.程序載入成功,結(jié)果如圖(4-1)所示: 圖 4-1 數(shù)據(jù)載入成功 2.按 KK2 微動開關屏上顯示“7”數(shù)
50、據(jù),如圖(4-2)所示: 圖 4-2 結(jié)果顯示 53 第 53 頁 共 87 頁 實驗實驗 2 2(結(jié)果)(結(jié)果) 1.程序載入成功,結(jié)果如圖(4-3)所示: 圖 4-3 數(shù)據(jù)載入成功 2.按 KK2 微動開關屏上顯示“6”數(shù)據(jù),如圖(4-4)所示: 圖 4-4 結(jié)果顯示 54 第 54 頁 共 87 頁 五五 思考與總結(jié)思考與總結(jié) 通過本次實驗我認識 TDN86/51 系統(tǒng)的中斷特性并掌握 8259 中斷控制器的工作原理,實驗當中遇到的一些問題,通過老師的點 撥與同學之間的互相幫助、互相學習得到了解決,今后要注意將學 習解決此類問題的方法,以后遇到也能輕松解決。 55 第 55 頁 共 87
51、 頁 實驗十實驗十 8255 并行接口應用實驗并行接口應用實驗 一一 實驗目的實驗目的 1學習并掌握 8255 的各種工作方式及其應用 2.學習載系統(tǒng)接口實驗單元上構(gòu)造實驗電路 二二 實驗設備實驗設備 1.TDN86/51 或 TDN86/88 教學實驗系統(tǒng)一臺 2.排線、導線若干 三三 實驗內(nèi)容及步驟實驗內(nèi)容及步驟 實驗實驗 1 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?) STACKSTACK ENDSENDS CODECODE SEGMENTSEGMENT ASSUMEASSUME CS:CODE
52、CS:CODE START:START: MOVMOV AL,82HAL,82H; ;設設 82558255 方式字方式字 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:2000 運行程序 實驗實驗 2 1 編寫源代碼: STACKSTACK SEGMENTSEGMENT STACKSTACK DWDW 6464 DUP(?)DUP(?)
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025山西忻州保德縣社區(qū)工作者招(選)聘36人備考題庫附答案
- 裝訂工崗前競爭分析考核試卷含答案
- 電器附件制造工崗前安全技能測試考核試卷含答案
- 水聲換能器裝配工安全教育模擬考核試卷含答案
- 2024年海南省特崗教師招聘考試真題題庫附答案
- 2024年璧山縣事業(yè)單位聯(lián)考招聘考試歷年真題附答案
- 2024年湖南涉外經(jīng)濟學院輔導員考試筆試真題匯編附答案
- 2025年企業(yè)企業(yè)內(nèi)部審計制度手冊
- 2024年莎車縣幼兒園教師招教考試備考題庫附答案
- 2024年鄭州信息工程職業(yè)學院輔導員考試筆試題庫附答案
- GB/T 46755-2025智能紡織產(chǎn)品通用技術(shù)要求
- 2026北京市中央廣播電視總臺招聘124人參考題庫附答案
- 十五五規(guī)劃綱要解讀:循環(huán)經(jīng)濟模式推廣
- 2026年山西警官職業(yè)學院單招綜合素質(zhì)筆試備考題庫帶答案解析
- 2026年農(nóng)夫山泉-AI-面試題目及答案
- 2026凱翼汽車全球校園招聘(公共基礎知識)綜合能力測試題附答案
- 山東省威海市環(huán)翠區(qū)2024-2025學年一年級上學期1月期末數(shù)學試題
- 2025年手術(shù)室護理實踐指南知識考核試題及答案
- 外貿(mào)公司采購專員績效考核表
- 彩禮分期合同范本
- 胸腺瘤伴重癥肌無力課件
評論
0/150
提交評論