




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.微型計(jì)算機(jī)原理與接口技術(shù) 實(shí)驗(yàn)日志指導(dǎo)教師 祝家鈺 實(shí)驗(yàn)時(shí)間: 2011 年 11 月 9 日學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(計(jì)算機(jī)網(wǎng)絡(luò)方向) 班級(jí) 3110905 學(xué)號(hào) 2009214922 姓名 鄭啟平 實(shí)驗(yàn)室 S318 實(shí)驗(yàn)題目:認(rèn)識(shí)tddebug集成操作軟件實(shí)驗(yàn)?zāi)康模?. 熟悉匯編程序的開(kāi)發(fā)過(guò)程。2. 認(rèn)識(shí)Tddebug集成操作軟件。3. 掌握在Tddebug集成環(huán)境中編輯、編譯、連接匯編語(yǔ)言程序方法。4. 掌握INT 21H軟件中斷來(lái)調(diào)用DOS內(nèi)部子程序的方法實(shí)驗(yàn)要求:PC微機(jī)一臺(tái)實(shí)驗(yàn)主要步驟:1、 認(rèn)識(shí)Tddebug編譯環(huán)境匯編語(yǔ)言程序的開(kāi)發(fā)過(guò)程如圖1.1所示,這
2、個(gè)過(guò)程主要有編輯、編譯、鏈接幾個(gè)步驟構(gòu)成。匯編源程序調(diào)用編輯程序edit.exe調(diào)用編譯程序tasm.exe或masm.exe調(diào)用鏈接程序tlink.exe或link.exe編輯.asm匯編.obj鏈接.編輯編譯鏈接圖1.1 匯編語(yǔ)言程序開(kāi)發(fā)過(guò)程A、源程序的編輯E: > EDIT TEST.ASM編輯過(guò)程就是將源程序輸入內(nèi)存,生成一個(gè)擴(kuò)展名為ASM的文本文件并存入硬盤(pán)。B、源程序的編譯E:>TASM TEST.ASM編譯也稱(chēng)為匯編,就是利用匯編器(如TASM或MASM)對(duì)源程序進(jìn)行編譯,生成擴(kuò)展名為OBJ的目標(biāo)文件。在編譯過(guò)程中,檢查語(yǔ)法錯(cuò)誤,若有錯(cuò),則不生成目標(biāo)代碼
3、文件,并給出錯(cuò)誤信息。根據(jù)錯(cuò)誤信息應(yīng)返回到編輯狀態(tài),修改源程序。C、目標(biāo)程序的鏈接E:> TLINK TEST.OBJ鏈接過(guò)程是利用鏈接程序(如TLINK或LINK)將用戶目標(biāo)程序和庫(kù)文件鏈接、定位,生成擴(kuò)展名為EXE的可執(zhí)行文件。鏈接時(shí),如果鏈接文件找不到所需要的鏈接信息,則發(fā)出錯(cuò)誤信息,不生成可執(zhí)行文件。D、調(diào)試可執(zhí)行程序E:>TD TEST.EXE;數(shù)據(jù)傳送實(shí)驗(yàn),采用相對(duì)尋址方式DDATASEGMENT ;定義源數(shù)據(jù)段MSRDB "HELLO,WORLD!$"LENEQU $- MSRDDATAENDSEXDA SEGMENT ;定義附加數(shù)據(jù)段MSDDB
4、LEN DUP(?)EXDA ENDSMYSTACK SEGMENT STACK ;定義堆棧段DW 20 DUP(?)MYSTACK ENDSCODE SEGMENT ;定義代碼段ASSUME CS:CODE,DS:DDATA,ES:EXDASTART:MOV AX,DDATAMOV DS,AX ;裝載數(shù)據(jù)段寄存器MOV AX,EXDAMOV ES,AX ;裝載附加數(shù)據(jù)段寄存器MOV SI,OFFSET MSRMOV DI,OFFSET MSD MOV CX,LENMOV BX,0NEXT: MOV AL,MSRBX ;開(kāi)始傳輸數(shù)據(jù) MOV ES:MSDBX,ALINCBXLOOP NEXTP
5、USH ESPOP DS ;將附加段寄存器指向的段值賦給數(shù)據(jù)段寄存器 MOV DX,OFFSET MSDMOV AH,9 INT 21H ;顯示字符串MOV AX,4C00H INT 21H ;返回DOS狀態(tài)CODE ENDS END START2、 運(yùn)行Tddebug軟件,選擇Edit菜單編寫(xiě)實(shí)驗(yàn)程序3、 使用Compile菜單中的Compile和Link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接,生成執(zhí)行文件。4、 使用Rmrun菜單中的Run運(yùn)行程序,觀察運(yùn)行結(jié)果。5、 使用Rmrun菜單中的Debug調(diào)試程序,查看程序段、數(shù)據(jù)段、附加段裝入內(nèi)存后的分配情況。TDDBLUG退出了單步執(zhí)行數(shù)據(jù)傳送指令后,觀
6、察各寄存器及數(shù)據(jù)區(qū)的內(nèi)容。過(guò)程如下:1) 按F7單步執(zhí)行,在代碼區(qū)中有一個(gè)三角,表示正在執(zhí)行的指令。每一條指令的執(zhí)行一定會(huì)使目標(biāo)寄存器和狀態(tài)寄存器發(fā)生變化,從相關(guān)窗口看結(jié)果。2) 檢查內(nèi)存數(shù)據(jù)區(qū)的內(nèi)容,關(guān)鍵是找出用戶程序的數(shù)據(jù)段和附加段:l 方法1:在CPU窗口按Tab鍵使內(nèi)存數(shù)據(jù)顯示區(qū)成為活動(dòng)區(qū),按Ctrl+G鍵,輸入:“DS或ES寄存器的值:偏移地址”,即可顯示用戶指定的數(shù)據(jù)區(qū)l 方法2:選擇菜單View| Dump,彈出內(nèi)存數(shù)據(jù)顯示窗口。3) 查看執(zhí)行結(jié)果:按Alt+F5,切換到用戶窗口。6、 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察、調(diào)試程序的正確性。實(shí)驗(yàn)結(jié)果:心得體會(huì):通過(guò)這次實(shí)驗(yàn),讓我清楚的了解了
7、在Tddebug集成環(huán)境中編輯、編譯、連接匯編語(yǔ)言程序方法過(guò)程,和INT 21H軟件中斷來(lái)調(diào)用DOS內(nèi)部子程序的方法。*;微型計(jì)算機(jī)原理與接口技術(shù) 實(shí)驗(yàn)日志指導(dǎo)教師 實(shí)驗(yàn)時(shí)間: 2011 年 11 月 9 日學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(計(jì)算機(jī)網(wǎng)絡(luò)方向) 班級(jí) 3110905 學(xué)號(hào) 2009214922 姓名 鄭啟平 實(shí)驗(yàn)室 S318 實(shí)驗(yàn)題目:I/O程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?. 理解軟中斷的調(diào)用方法及中斷過(guò)程。2. 掌握INT 21H軟件中斷來(lái)調(diào)用DOS系統(tǒng)I/O子程序的方法。3. 掌握將存儲(chǔ)在內(nèi)存單元中的數(shù)據(jù)在屏幕上顯示的方法。4. 掌握從鍵盤(pán)輸入信息到內(nèi)存的方法。實(shí)驗(yàn)要求:1
8、.習(xí)DOS功能調(diào)用(INT 21H)中用于字符輸入(功能號(hào)為01H)、字符輸出(功能號(hào)為02H)、字符串輸入(功能號(hào)為0AH)以及字符串輸出(功能號(hào)為09H)的調(diào)用方法。參見(jiàn)教材32位微型計(jì)算機(jī)原理與接口技術(shù)89頁(yè)。2閱讀示例程序,掌握輸入/輸出方法。3從實(shí)驗(yàn)內(nèi)容中任選一道題目,仔細(xì)閱讀相關(guān)的實(shí)驗(yàn)要求及說(shuō)明,編寫(xiě)程序,以便上機(jī)調(diào)試。實(shí)驗(yàn)主要步驟:1. 畫(huà)出實(shí)驗(yàn)流程圖。2. 運(yùn)行Tddebug軟件,選擇Edit菜單編寫(xiě)實(shí)驗(yàn)程序3. 使用Compile菜單中的Compile和Link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接,生成執(zhí)行文件。4. 使用Rmrun菜單中的Run運(yùn)行程序,觀察運(yùn)行結(jié)果。5. 使用Rmru
9、n菜單中的Debug調(diào)試程序。單步執(zhí)行指令,觀察各寄存器及數(shù)據(jù)區(qū)的內(nèi)容。6. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。;將指定數(shù)據(jù)區(qū)SD的數(shù)據(jù)以十六進(jìn)制數(shù)形式顯示在屏幕上圖2-1 一個(gè)字節(jié)數(shù)以十六進(jìn)制數(shù)形式顯示處理流程DATASEGMENTUSE16MESDB'Show a as hex:',0AH,0DH,'$'SDDB'a'DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATASTART:MOV AX,DATAMOVDS,AXMOVDX,OFFSET MES;顯示提示信息MOVAH,09HINT 21HMOV
10、SI,OFFSET SDMOVAL,DS:SIANDAL,0F0H;取高4位SHRAL,4CMPAL,0AH;是否是A以上的數(shù)JBC2ADDAL,07HC2:ADDAL,30HMOVDL,AL;顯示字符 MOVAH,02HINT21HMOVAL,DS:SIANDAL,0FH;取低4位CMPAL,0AHJBC3ADD AL,07HC3:ADDAL,30HMOVDL,AL;顯示字符 MOVAH,02HINT21HMOVAX,4C00H;返回DOSINT21HCODEENDSENDSTART編譯:連接:運(yùn)行:實(shí)驗(yàn)心得:通過(guò)本次實(shí)驗(yàn)課,讓我掌握INT 21H軟件中斷來(lái)調(diào)用DOS系統(tǒng)I/O子程序的方法,
11、理解了軟中斷的調(diào)用方法及中斷過(guò)程,將存儲(chǔ)在內(nèi)存單元中的數(shù)據(jù)在屏幕上顯示的方法,總之收益匪淺,同時(shí)也加強(qiáng)了自我動(dòng)手和思考能力,最重要的是感謝老師課后講解,讓我印象深刻! 微型計(jì)算機(jī)原理與接口技術(shù) 實(shí)驗(yàn)日志指導(dǎo)教師 實(shí)驗(yàn)時(shí)間: 2011 年 11 月 9 日學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(計(jì)算機(jī)網(wǎng)絡(luò)方向) 班級(jí) 3110905 學(xué)號(hào) 2009214922 姓名 鄭啟平 實(shí)驗(yàn)室 S318 實(shí)驗(yàn)題目:循環(huán)程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?. 掌握比較指令、轉(zhuǎn)移指令和循環(huán)指令的使用方法2掌握循環(huán)結(jié)構(gòu)程序的組成3掌握循環(huán)程序的設(shè)計(jì)、調(diào)試方法實(shí)驗(yàn)要求:1復(fù)習(xí)比較指令、條件轉(zhuǎn)移指令和循環(huán)指令。2閱讀示例程序
12、,掌握循環(huán)程序的結(jié)構(gòu)、循環(huán)控制方法及相關(guān)技巧。3從實(shí)驗(yàn)內(nèi)容中任選一道題目,仔細(xì)閱讀相關(guān)的實(shí)驗(yàn)要求及說(shuō)明,編寫(xiě)程序,以便上機(jī)調(diào)試。實(shí)驗(yàn)主要步驟:實(shí)驗(yàn)題目:確定數(shù)據(jù)區(qū)NUMB中負(fù)數(shù)的個(gè)數(shù)(存放于BL中)DDATASEGMENTNUMBDB12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HMESDB'The number of negative is:$'DDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DDATASTART:MOVAX,DDATAMOVDS,AXMOVDI,OFFSET NUMBXORBH,BHMOVCX,1
13、0DA1:MOV AL,DITEST AL,80HJE A2INC BLA2:INC DILOOP A1MOVDX,OFFSET MES;show mesMOVAH,09HINT 21HMOVAL,BL;show the number of negativeANDAL,0F0H;get the highest 4 bitsSHRAL,4CMPAL,0AHJBC2ADDAL,07HC2:ADDAL,30HMOVDL,AL;show character MOVAH,02HINT21HMOVAL,BLANDAL,0FH;get the lowest 4 bitsCMPAL,0AHJBC3ADD AL
14、,07HC3:ADDAL,30HMOVDL,AL;show character MOVAH,02HINT21HMOVAX,4C00H;go back to dosINT21HCODE ENDS END START1. 運(yùn)行Tddebug軟件,選擇Edit菜單編寫(xiě)實(shí)驗(yàn)程序2. 使用Compile菜單中的Compile和Link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接,生成執(zhí)行文件。 3. 使用Rmrun菜單中的Run運(yùn)行程序,觀察運(yùn)行結(jié)果。 4. 使用Rmrun菜單中的Debug調(diào)試程序。觀察構(gòu)成分支、循環(huán)條件的各標(biāo)志的變化情況及相關(guān)寄存器內(nèi)容。5. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。實(shí)驗(yàn)結(jié)果:屏幕輸出:0
15、5心得體會(huì):通過(guò)本節(jié)課的循環(huán)程序設(shè)計(jì)練習(xí),讓我了解和掌握了部分調(diào)整指令的用法,同時(shí)也熟悉了部分指令的運(yùn)用,彌補(bǔ)了課堂紙上談兵之不足,增強(qiáng)了動(dòng)手能力! 微型計(jì)算機(jī)原理與接口技術(shù) 實(shí)驗(yàn)日志指導(dǎo)教師 祝家鈺 實(shí)驗(yàn)時(shí)間: 2011 年 11 月 9 日學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(計(jì)算機(jī)網(wǎng)絡(luò)方向) 班級(jí) 3110905 學(xué)號(hào) 2009214922 姓名 鄭啟平 實(shí)驗(yàn)室 S318 實(shí)驗(yàn)題目:代碼轉(zhuǎn)換程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?. 了解微機(jī)中所使用的各類(lèi)數(shù)制及編碼方法。2. 掌握不同進(jìn)制數(shù)及編碼相互轉(zhuǎn)換的程序設(shè)計(jì)方法,加深對(duì)數(shù)碼轉(zhuǎn)換的理解。3. 掌握將存儲(chǔ)在內(nèi)存單元中的數(shù)據(jù)以十六進(jìn)制數(shù)形式、十進(jìn)
16、制數(shù)形式和二進(jìn)制數(shù)形式顯示在屏幕上的方法。實(shí)驗(yàn)要求:1復(fù)習(xí)運(yùn)算類(lèi)指令的用法。2復(fù)習(xí)子程序設(shè)計(jì)及調(diào)用方法。3閱讀示例程序,掌握子程序的編程方法及相關(guān)技巧。4從實(shí)驗(yàn)內(nèi)容中任選一道題目,仔細(xì)閱讀相關(guān)的實(shí)驗(yàn)要求及說(shuō)明,用子程序處理方式編寫(xiě)程序,以便上機(jī)調(diào)試實(shí)驗(yàn)主要步驟:7. 畫(huà)出實(shí)驗(yàn)流程圖。圖6-3 將十進(jìn)制數(shù)的數(shù)字串轉(zhuǎn)換為BCD碼參考流程圖6-2 將5位十進(jìn)制數(shù)的數(shù)字串轉(zhuǎn)換為二進(jìn)制數(shù)參考流程 8. 運(yùn)行Tddebug軟件,選擇Edit菜單編寫(xiě)實(shí)驗(yàn)程序打開(kāi)TddebugàAlt+Eà命名一個(gè)zh.asm文件àok,然后編輯下列代碼入內(nèi),并保存將十進(jìn)制數(shù)的數(shù)字串轉(zhuǎn)換為數(shù)DD
17、ATASEGMENTMESDB'The ascii code of decimal code are:$'BUFDB30H,30H,30H,31H,32H ;十進(jìn)制數(shù)00012的ASCII碼DB10H DUP(0)DDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DDATASTART:MOVAX,DDATAMOVDS,AXMOV SI,OFFSET BUFMOV BX,000AH ;送被乘數(shù)10MOV CX,0004H ;送轉(zhuǎn)換的位數(shù) 控制循環(huán)次數(shù)MOV AH,00H ;清零MOV AL,SI ;取第一位的ASCII碼SUB AL,30H ;獲取數(shù)字
18、0A1:IMUL BX ;乘10(dx, ax)ß(ax)*bxADD AL,SI+01 SUB AL,30HINC SI ;si+1LOOP A1MOV SI,AXMOVDX,OFFSET MES ;顯示提示信息MOVAH,09HINT21HINCSI ;顯示高字節(jié)CALLSHOWDECSI ;顯示低字節(jié)CALLSHOWMOVAX,4C00H ;返回DOSINT21HSHOWPROCNEAR ;顯示內(nèi)存中一個(gè)字節(jié)字符的程序MOVAL,DS:SIANDAL,0F0H ;取高4位SHRAL,4CMPAL,0AH ;是否是A以上的數(shù)JBC2ADDAL,07HC2:ADDAL,30HMOV
19、DL,AL ;顯示字符 MOVAH,02HINT21HMOVAL,DS:SIANDAL,0FH ;取低4位CMPAL,0AHJBC3ADD AL,07HC3:ADDAL,30HMOVDL,AL ;顯示字符MOVAH,02HINT21HRETENDPCODE ENDS END START9. 使用Compile菜單中的Compile和Link對(duì)實(shí)驗(yàn)程序進(jìn)行匯編、連接,生成執(zhí)行文件。 點(diǎn)擊Alt+Fàexit;返回Tddebug初始界面在點(diǎn)擊Alt+Càcompileàok 點(diǎn)擊enter鍵返回àAlt+c>linkàok 10. 使用Rmr
20、un菜單中的Run運(yùn)行程序,觀察運(yùn)行結(jié)果。在3的基礎(chǔ)上點(diǎn)擊enter鍵返回Tddebug界面,Alt+RàRun 11. 使用Rmrun菜單中的Debug調(diào)試程序。單步執(zhí)行指令,觀察各寄存器及數(shù)據(jù)區(qū)的內(nèi)容。12. 更改數(shù)據(jù)區(qū)中的數(shù)據(jù),考察程序的正確性。實(shí)驗(yàn)結(jié)果:屏幕輸出:000c心得體會(huì):通過(guò)微機(jī)原理與接口技術(shù)的初步學(xué)習(xí)知道,計(jì)算機(jī)輸入設(shè)備輸入的信息一般是由ASCII碼或BCD碼表示的數(shù)據(jù)或字符,CPU一般均用二進(jìn)制數(shù)進(jìn)行計(jì)算或用其他信息進(jìn)行處理,處理的結(jié)果又必須依照外設(shè)的要求變?yōu)锳SCII碼、或BCD碼或七段顯示碼等。因此,在應(yīng)用軟件中,各類(lèi)數(shù)制的轉(zhuǎn)換和代碼的轉(zhuǎn)換是必不可少的。通過(guò)
21、本次實(shí)驗(yàn),加深了對(duì)十進(jìn)制數(shù)的數(shù)字串轉(zhuǎn)換為二進(jìn)制數(shù)、內(nèi)存中一個(gè)字的數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的數(shù)字串、十進(jìn)制數(shù)的數(shù)字串轉(zhuǎn)換為BCD碼、BCD碼轉(zhuǎn)換為二進(jìn)制數(shù)的了解,對(duì)于循環(huán)和加減運(yùn)算的運(yùn)用更加深刻 微型計(jì)算機(jī)原理與接口技術(shù) 實(shí)驗(yàn)日志指導(dǎo)教師 祝家鈺 實(shí)驗(yàn)時(shí)間: 2011 年 11 月 9 日學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(計(jì)算機(jī)網(wǎng)絡(luò)方向) 班級(jí) 3110905 學(xué)號(hào) 2009214922 姓名 鄭啟平 實(shí)驗(yàn)室 S318 實(shí)驗(yàn)題目:子程序及中斷程序設(shè)計(jì)實(shí)驗(yàn)?zāi)康模?. 掌握子程序的定義和調(diào)用方法2. 掌握系統(tǒng)功能調(diào)用程序(軟中斷程序)的使用和編寫(xiě)方法3. 了解子程序與軟中斷之間的差異。4. 認(rèn)
22、識(shí)和理解中斷特性。實(shí)驗(yàn)要求:1. 復(fù)習(xí)子程序的定義與調(diào)用方法。2復(fù)習(xí)中斷的概念,了解PC機(jī)系統(tǒng)中斷向量表的占用情況(見(jiàn)表10-1)。3復(fù)習(xí)子程序的調(diào)用過(guò)程與軟中斷調(diào)用過(guò)程之間異同。4閱讀示例程序,掌握編寫(xiě)軟中斷程序的方法及相關(guān)技巧。5從實(shí)驗(yàn)內(nèi)容中任選一道題目,仔細(xì)閱讀相關(guān)的實(shí)驗(yàn)要求及說(shuō)明,編寫(xiě)程序,以便上機(jī)調(diào)試。實(shí)驗(yàn)主要步驟:1. 打開(kāi)tddebug編寫(xiě)運(yùn)行下列程序:數(shù)碼轉(zhuǎn)換及顯示:實(shí)驗(yàn)利用47H號(hào)中斷將一組字符轉(zhuǎn)換成16進(jìn)制數(shù)碼,并在屏幕上顯示出來(lái)DDATASEGMENTCSBAK DW ?IPBAK DW ?MKBAK DB ?SW DW ?MES DB 'The data in
23、buf1 are:',0AH,0DH,'$'BUF1DB11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH,00HDDATAENDSCODE SEGMENT ASSUME CS:CODE,DS:DDATASTART PROC FAR MOV AX,DDATA MOV DS,AX MOV AX,0;修改47H號(hào)中斷的中斷矢量 MOV ES,AX MOV DI,4*47H MOV AX,ES:DI MOV IPBAK,AX;保存原有IP MOV AX,OFFSET MYINT;修改為用戶自定義中
24、斷入口 CLD STOSW MOV AX,ES:DI;保存原有CS MOV CSBAK,AX MOV AX,SEG MYINT STOSWMOV DX,OFFSET MES;顯示提示信息MOV AH,09HINT 21H ;顯示BUF1中的內(nèi)容MOV SI,OFFSET BUF1MOV CX,10HINT 47H ;調(diào)用中斷服務(wù)程序 MOV AX,0;恢復(fù)系統(tǒng)中斷矢量 MOV ES,AX MOV DI,4*47H MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW MOV AX,4C00H; 返回dos INT 21H RET ENDP MYINT PROC F
25、AR;自定義顯示中斷,入口參數(shù)為SI,CX PUSHAXPUSHDXC1:MOVAL,SIANDAL,0F0H;取高4位SHRAL,4CMPAL,0AH;是否是A以上的數(shù)JBC2ADDAL,07HC2:ADDAL,30HMOVDL,AL;顯示字符MOVAH,02HINT21HMOVAL,SIANDAL,0FH;取低4位CMPAL,0AHJBC3ADD AL,07HC3:ADDAL,30HMOVDL,AL;顯示字符MOVAH,02HINT21HINCSILOOPC1POPDXPOPAX IRET;中斷返回 ENDPCODE ENDS END START編譯:連接:運(yùn)行:實(shí)驗(yàn)結(jié)果:屏幕上顯示一串1
26、6進(jìn)制數(shù):112233445566778899AABBCCDDEEFF00心得體會(huì): 本節(jié)課通過(guò)對(duì)子程序及軟中段程序設(shè)計(jì)的學(xué)習(xí),讓我對(duì)子程序中斷調(diào)用call有了初步的認(rèn)識(shí)用戶可自己開(kāi)發(fā)中斷服務(wù)程序,用它取代系統(tǒng)原有的服務(wù)程序,過(guò)程如下:l 編寫(xiě)中斷服務(wù)子程序,用IRET指令返回(清理現(xiàn)場(chǎng)后才返回dos系統(tǒng))l 確定使用的中斷號(hào)n,修改中斷向量表中4×n4×n+3單元的對(duì)應(yīng)中斷服務(wù)程序入口l INT n指令調(diào)用中斷,此時(shí)CPU保護(hù)現(xiàn)場(chǎng):將F、CS、IP寄存器入棧,然后從中斷向量表中4×n4×n+3單元取出n型中斷向量寫(xiě)入IP,CS中,CPU根據(jù)CS:IP的
27、值轉(zhuǎn)向服務(wù)子程序。l 當(dāng)執(zhí)行IRET時(shí),恢復(fù)現(xiàn)場(chǎng):從堆棧中彈出6個(gè)字節(jié)傳送給IP、CS、F寄存器,回到斷點(diǎn)繼續(xù)執(zhí)行。l 程序結(jié)束返回DOS之前,要恢復(fù)系統(tǒng)的中斷向量設(shè)置。本次實(shí)驗(yàn)超于課堂進(jìn)度,讓我對(duì)中斷的重要性有了一定的認(rèn)識(shí),同時(shí)也讓我對(duì)中斷子程序調(diào)用過(guò)程有了初步的認(rèn)識(shí),相信本次實(shí)驗(yàn)為我課堂學(xué)習(xí)減輕了難度!微型計(jì)算機(jī)原理與接口技術(shù) 實(shí)驗(yàn)日志指導(dǎo)教師 實(shí)驗(yàn)時(shí)間: 2011 年 11 月 15 日學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(計(jì)算機(jī)網(wǎng)絡(luò)方向) 班級(jí) 3110905 學(xué)號(hào) 2009214922 姓名 鄭啟平 實(shí)驗(yàn)室 S318 實(shí)驗(yàn)題目:PC機(jī)內(nèi)部8259中斷應(yīng)用實(shí)驗(yàn)?zāi)康模?. 進(jìn)一
28、步認(rèn)識(shí)和理解中斷特性。2. 掌握8259中斷控制器的工作原理、編程方法以及PC機(jī)如何通過(guò)8259A實(shí)現(xiàn)對(duì)外部可屏蔽硬件中斷源的管理。3. 熟悉實(shí)驗(yàn)中涉及到的中斷屏蔽寄存器IMR和中斷服務(wù)寄存器ISR等的使用方法。4. 進(jìn)一步掌握中斷服務(wù)程序的設(shè)計(jì)方法。實(shí)驗(yàn)要求:PC微機(jī)一臺(tái)1復(fù)習(xí)中斷的概念,了解PC機(jī)系統(tǒng)中斷向量表的占用情況(見(jiàn)表10-1)。2復(fù)習(xí)8259中斷控制器的工作原理,了解PC機(jī)中外部可屏蔽硬件中斷的處理過(guò)程。實(shí)驗(yàn)原理硬件中斷是由CPU以外的器件發(fā)出的中斷請(qǐng)求信號(hào)而引發(fā)的中斷。80x86CPU只有兩個(gè)引腳(INTR和NMI)可以接受外部的中斷脈沖,為了管理眾多的外部中斷源,INTER公
29、司設(shè)計(jì)了專(zhuān)用的配套芯片8259A中斷控制器3復(fù)習(xí)PC機(jī)如何通過(guò)8259A實(shí)現(xiàn)對(duì)外部可屏蔽硬件中斷源的管理。8259A的中斷過(guò)程,即微機(jī)系統(tǒng)響應(yīng)可屏蔽中斷的過(guò)程(1)將加到引腳IR0IR7上的中斷請(qǐng)求寄存到中斷請(qǐng)求寄存器中。(2)在中斷屏蔽寄存器的管理下,沒(méi)有被屏蔽的中斷請(qǐng)求被送到優(yōu)先權(quán)電路判優(yōu)。(3)選中當(dāng)前級(jí)別最高的中斷源,然后從引腳INT向CPU發(fā)出中斷請(qǐng)求信號(hào)。(4)CPU滿足一定的條件后,向8259A發(fā)出兩個(gè)中斷響應(yīng)信號(hào)(負(fù)脈沖):1)8259A從引腳INTA收到第1個(gè)中斷響應(yīng)信號(hào)之后,立即使中斷服務(wù)寄存器中與被選中的中斷源對(duì)應(yīng)的那一位置1,同時(shí)把中斷請(qǐng)求寄存器中的相應(yīng)位清0。2)從引
30、腳INTA收到第2個(gè)中斷響應(yīng)信號(hào)之后,8259A把選中的中斷源類(lèi)型碼n通過(guò)數(shù)據(jù)線送往CPU。(5)在實(shí)模式下,CPU從4×n4×n+3單元取出該中斷源的中斷向量IP,CS,從而引導(dǎo)CPU執(zhí)行該中斷源的中斷服務(wù)程序。4仔細(xì)閱讀實(shí)驗(yàn)原理、示例程序,掌握中斷服務(wù)程序的編寫(xiě)方法及相關(guān)技巧。5從實(shí)驗(yàn)內(nèi)容中任選一道題目,仔細(xì)閱讀相關(guān)的實(shí)驗(yàn)要求及說(shuō)明,編寫(xiě)程序,以便上機(jī)調(diào)試。8259:選擇優(yōu)先級(jí)別高的指令進(jìn)行運(yùn)行!實(shí)驗(yàn)主要步驟:1、 運(yùn)行示例程序,按鍵8次,觀察運(yùn)行結(jié)果:;按鍵8次,響應(yīng)16次中斷DATA SEGMENTCSBAK DW ?IPBAK DW ?MKBAK DB ?DATA
31、 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART PROC FAR MOV AX,DATA MOV DS,AX IN AL,21H;保留8259初始屏蔽字的狀態(tài) MOV MKBAK,AL CLI;關(guān)中斷 ANDAL,11111101B;打開(kāi)鍵盤(pán)屏蔽 OUT 21h,AL MOV AX,0;修改鍵盤(pán)中斷的中斷矢量 MOV ES,AX MOV DI,24H ;IRQ1,09H,24H=09H*4 鍵盤(pán)中斷是09H,09H*4四個(gè)字節(jié) MOV AX,ES:DI MOV IPBAK,AX;寫(xiě)入IP MOV AX,OFFSET MYINT CLD STOSW M
32、OV AX,ES:DI;寫(xiě)入CS MOV CSBAK,AX MOV AX,SEG MYINT STOSW XOR DX,DX ;清計(jì)數(shù)器A1: STI ;開(kāi)中斷 CMP DX,10H ;是否按了8次鍵 JZ A2 ;是,結(jié)束程序運(yùn)行 JMP A1 ;否則繼續(xù)等待鍵盤(pán)中斷A2: PUSH DX ;保存計(jì)數(shù)值 CLI ;關(guān)中斷 MOV AX,0;恢復(fù)系統(tǒng)中斷矢量 MOV ES,AX MOV DI,24H ;IRQ1,09H MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW MOV AL,MKBAK;恢復(fù)系統(tǒng)8259屏蔽字 OUT 21h,AL STI ;開(kāi)中斷 P
33、OP DX ;顯示計(jì)數(shù)值 CALL SHWORD MOV AX,4C00H INT 21H RETSTART ENDPMYINT PROC FAR;自定義鍵盤(pán)中斷處理程序 STI ;開(kāi)中斷 INC DX ;計(jì)數(shù)加一 IN AL,60H;讀入掃描碼(用戶可對(duì)此鍵值進(jìn)行處理) IN AL,61H;讀入控制字節(jié) MOV AH,AL OR AL,80H OUT 61H,AL;復(fù)位鍵盤(pán) CLI ;關(guān)中斷 MOV AL,61H;中斷結(jié)束命令送中斷控制器OUT20H,AL IRET ;中斷返回MYINT ENDPSHWORDPROCNEAR;216進(jìn)制顯示 MOV CX,4AGA: ROL DX,4 MOV
34、 AL,DL AND AL,0FH CMP AL,10 JC NEXT2 ADD AL,7NEXT2: ADD AL,30H MOV AH,0EH INT 10H LOOP AGARETSHWORD ENDP CODE ENDS END START實(shí)驗(yàn)結(jié)果:輸入01010101按鍵輸入8次,屏幕輸入是0010心得體會(huì):通過(guò)本次實(shí)驗(yàn),讓我進(jìn)一步對(duì)子程序的定義和調(diào)用方法有了進(jìn)一步的了解,同時(shí)也對(duì)系統(tǒng)功能調(diào)用程序的使用有了初步的了解,第一次真正感覺(jué)區(qū)分中斷和子程序之間的差異,讓我受益良多!微型計(jì)算機(jī)原理與接口技術(shù) 實(shí)驗(yàn)日志指導(dǎo)教師 祝家鈺 實(shí)驗(yàn)時(shí)間: 2011 年 11 月 9 日學(xué)院 計(jì)算機(jī)科學(xué)與
35、技術(shù) 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)(計(jì)算機(jī)網(wǎng)絡(luò)方向) 班級(jí) 3110905 學(xué)號(hào) 2009214922 姓名 鄭啟平 實(shí)驗(yàn)室 S318 實(shí)驗(yàn)題目:PCI總線中斷應(yīng)用實(shí)驗(yàn)?zāi)康模?. 掌握使用PCI中斷的方法。2. 了解操作PCI設(shè)備I/O端口的方法。3. 進(jìn)一步掌握8259中斷控制器的工作原理、編程方法以及PC機(jī)如何通過(guò)8259A實(shí)現(xiàn)對(duì)外部可屏蔽硬件中斷源的管理。4. 進(jìn)一步掌握中斷服務(wù)程序的設(shè)計(jì)方法。實(shí)驗(yàn)要求:1復(fù)習(xí)中斷的概念,了解PC機(jī)系統(tǒng)中斷向量表的占用情況。2復(fù)習(xí)8259中斷控制器的工作原理,了解PC機(jī)中外部可屏蔽硬件中斷的處理過(guò)程。3復(fù)習(xí)PC機(jī)如何通過(guò)8259A實(shí)現(xiàn)對(duì)外部可屏蔽硬件中斷源的管
36、理。4仔細(xì)閱讀實(shí)驗(yàn)說(shuō)明、示例程序,掌握PCI總線中斷服務(wù)程序的編寫(xiě)方法。5根據(jù)實(shí)驗(yàn)內(nèi)容,仔細(xì)閱讀相關(guān)的實(shí)驗(yàn)要求及說(shuō)明,編寫(xiě)程序,以便上機(jī)調(diào)試。實(shí)驗(yàn)主要步驟:1. 分析程序,畫(huà)出實(shí)驗(yàn)流程圖。2. 用排線將KK UNIT中的KK1脈沖開(kāi)關(guān)與仿真ISA總線中的IRQ信號(hào)連接。打開(kāi)實(shí)驗(yàn)箱電源。3. 運(yùn)行程序,按動(dòng)KK1,觀察運(yùn)行結(jié)果。INTCSR_BYTE0 EQU 9038H ;修改PCI操作寄存器的端口地址INTCSR_BYTE1 EQU 9039HINTCSR_BYTE2 EQU 903AHINTCSR_BYTE3 EQU 903BHIMB4_BYTE3 EQU 901FHDATA SEGMENTCSBAK DW ? IPBAK DW ?MKBAK DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: CLI MOV AX,DATA MOV DS,AX ;初始化PCI寄存器 MOV DX,INTCSR_BYTE0 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程臨時(shí)工合同協(xié)議書(shū)
- 地板打蠟合同協(xié)議書(shū)樣本
- 買(mǎi)賣(mài)居間協(xié)議合同
- 業(yè)務(wù)合同協(xié)議照片
- 欠款委托協(xié)議合同
- 協(xié)議合同解除的時(shí)效性
- 協(xié)議書(shū)是勞動(dòng)合同
- 協(xié)議離婚合同注意
- 拉丁舞學(xué)員合同協(xié)議書(shū)
- 承攬合同轉(zhuǎn)包協(xié)議
- 西藏林芝嘉園小區(qū)項(xiàng)目可研(可研發(fā))
- 航運(yùn)系統(tǒng)組成和航運(yùn)企業(yè)組織結(jié)構(gòu)及特點(diǎn)
- 喪假證明模板
- summary-writing-概要寫(xiě)作-優(yōu)質(zhì)課件
- 按期取得畢業(yè)證和學(xué)位證承諾書(shū)
- T∕CIC 049-2021 水泥窯用固體替代燃料
- 部編版高中語(yǔ)文必修下冊(cè)第八單元《單元導(dǎo)讀》教學(xué)設(shè)計(jì)
- 第五章 學(xué)校教育的主要活動(dòng)形式:課堂教學(xué)
- 大會(huì)—冠脈微循環(huán)障礙
- 《辦公自動(dòng)化》教學(xué)教案
- 動(dòng)物檢疫學(xué)講義課件
評(píng)論
0/150
提交評(píng)論