版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、華中科技大學(xué)匯編實(shí)驗(yàn)報(bào)告聿甲科拉大字課程實(shí)驗(yàn)報(bào)告課程名稱:匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)名稱:實(shí)驗(yàn)六輸入輸出與中斷處理程序設(shè)計(jì)實(shí)驗(yàn)時(shí)間:2016-4-26,14:00-17:30實(shí)驗(yàn)地點(diǎn):南一樓804室74號(hào)實(shí)驗(yàn)臺(tái)指導(dǎo)教師:張勇專業(yè)班級(jí):計(jì)算機(jī)科學(xué)與技術(shù)201409班學(xué)號(hào):U201414813姓名:唐禮威同組學(xué)生:無(wú)報(bào)告日期:2016年5月2日原創(chuàng)性聲明本人鄭重聲明:本報(bào)告的內(nèi)容由本人獨(dú)立完成,有關(guān)觀點(diǎn)、方法、數(shù)據(jù)和文獻(xiàn)等的引用已經(jīng)在文中指出。除文中已經(jīng)注明引用的內(nèi)容外,本報(bào)告不包含任何其他個(gè)人或集體已經(jīng)公開(kāi)發(fā)表的作品或成果,不存在剽竊、抄襲行為。特此聲明!學(xué)生簽名:日期:成績(jī)?cè)u(píng)定實(shí)驗(yàn)完成質(zhì)報(bào)告撰寫
2、質(zhì)量總成績(jī)(100量得分(70分)(實(shí)驗(yàn)步驟清晰詳細(xì)深入,實(shí)驗(yàn)記錄真實(shí)完整等)得分(30分)(報(bào)告規(guī)范、完整、通順、詳實(shí)等)分)指導(dǎo)教師簽字:日期:目錄實(shí)驗(yàn)?zāi)康呐c要求3實(shí)驗(yàn)內(nèi)容3實(shí)驗(yàn)過(guò)程4任務(wù)14設(shè)計(jì)思想及存儲(chǔ)單元分配4流程圖4源程序4實(shí)驗(yàn)步驟6實(shí)驗(yàn)記錄7任務(wù)27設(shè)計(jì)思想及存儲(chǔ)單元分配7流程圖9源程序9實(shí)驗(yàn)步驟12實(shí)驗(yàn)記錄123.3任務(wù)314設(shè)計(jì)思想及存儲(chǔ)單元分配14流程圖14源程序14實(shí)驗(yàn)步驟17實(shí)驗(yàn)記錄1718參考文獻(xiàn)191實(shí)驗(yàn)?zāi)康呐c要求(1) 掌握中斷矢量表的概念;熟悉I/O訪問(wèn),BIOS功能調(diào)用方法;(2) 掌握實(shí)方式下中斷處理程序的編制與調(diào)試方法。2實(shí)驗(yàn)內(nèi)容任務(wù)1:用三種方式獲取中斷
3、類型碼10H對(duì)應(yīng)的中斷處理程序的入口地址。要求:首先要進(jìn)入虛擬機(jī)狀態(tài),然后(1) 直接運(yùn)行調(diào)試工具(TD.EXE),觀察中斷欠量表中的信息。(2) 編寫程序,用DOS系統(tǒng)功能調(diào)用方式獲取,觀察功能調(diào)用相應(yīng)的出口參數(shù)與“(1)”看到的結(jié)果是否相同(使用TD觀看出口參數(shù)即可)。編寫程序,直接讀取相應(yīng)內(nèi)存單元,觀察讀到的數(shù)據(jù)與“(1)”看到的結(jié)果是否相同(使用TD觀看程序的執(zhí)行結(jié)果即可)。任務(wù)2:編寫一個(gè)接管鍵盤中斷的中斷服務(wù)程序并駐留內(nèi)存,要求在程序返回DOS操作系統(tǒng)后,鍵盤的按鍵A變成了按鍵B,而B變成了A。要求:(1) 在DOS虛擬機(jī)或DOS窗口下執(zhí)行程序,中斷服務(wù)程序駐留內(nèi)存。(2) 在DO
4、S命令行下按鍵A,屏幕顯示為B,按B時(shí)屏幕顯示為A。執(zhí)行TD,在代碼區(qū)輸入指令“MOVAX,0”看是否能發(fā)生變化。(3) 選作:另外編寫一個(gè)中斷服務(wù)程序的卸載程序,將鍵盤中斷服務(wù)程序恢復(fù)到原來(lái)的狀態(tài)(也就是還原中斷欠量表的信息)。任務(wù)3:讀取CMOS內(nèi)指定單元的信息,按照16進(jìn)制形式顯示在屏幕上。要求:(1) 先輸入待讀取的CMOS內(nèi)部單元的地址編號(hào)(可以只處理編號(hào)小丁10的地址單元)。再使用IN/OUT指令,讀取CMOS內(nèi)的指定單元的信息。將讀取的信息用16進(jìn)制的形式顯示在屏幕上。若是時(shí)間信息,可以人工判斷一下是否正確3實(shí)驗(yàn)過(guò)程3.1任務(wù)13.1.1設(shè)計(jì)思想及存儲(chǔ)單元分配用三種方式獲取中斷類
5、型碼10H對(duì)應(yīng)的中斷處理程序的入口地址。1. 直接在td中觀察即可。2. 系統(tǒng)功能調(diào)用35H,入口參數(shù)為AL=10H,取中斷信息。直接把主存中的DS:40HrIP,DS:42HCS賦值給寄存器BX和CX3.1.2流程圖無(wú)3.1.3源程序程序名renwu61.386CODESEGMENTUSE16ASSUMECS:CODESTART:XORAX,AXMOVDS,AXMOVAX,3510HINT21HMOVAH,4CHINT21HCODEENDSENDSTART程序名renwu62.386STACKSEGMENTUSE16STACKDB200DUP(0)STACKENDSCODESEGMENTUS
6、E16ASSUMECS:CODE,SS:STACKSTART:XORAX,AXMOVDS,AXXORBX,BXXORCX,CXMOVBX,DS:40HMOVCX,DS:42HMOVAH,4CHINT21HCODEENDSENDSTART3.1.4實(shí)驗(yàn)步驟1. 直接運(yùn)行td,置數(shù)據(jù)區(qū)為當(dāng)前區(qū)執(zhí)行Goto,在地址輸入窗口輸:40H(0:10*4)->IP,(0:10*4+2->CS讀取連續(xù)的4個(gè)字節(jié),前兩個(gè)為偏移地址,后兩個(gè)為段值。然后置代碼區(qū)為當(dāng)前區(qū)。輸入剛才得到的值,得到對(duì)應(yīng)的程序。2. 將程序renwu61編譯、鏈接,調(diào)試直到?jīng)]有錯(cuò)誤。運(yùn)行tdrenwu61,在td中單步調(diào)試,觀
7、察es與bx的改變情況;3. 將程序renwu62編譯、鏈接,調(diào)試直到?jīng)]有錯(cuò)誤。運(yùn)行tdrenwu62,在td中單步調(diào)試,觀察寄存器的值。1. 3.1.5實(shí)驗(yàn)記錄(包括實(shí)驗(yàn)條件、輸入/輸出、錯(cuò)誤和修改等信息的記錄)實(shí)驗(yàn)環(huán)境條件:16M內(nèi)存;WINDOWSXP命令行窗口;EDIT.EXE2.0;MASM.EXE6.0;LINK.EXE5.2;TD.EXE5.0。方法一,直接觀察ds段,可以觀察到從0:40h開(kāi)始低2個(gè)字節(jié)為0F96,高2個(gè)字節(jié)為3002;方法二,調(diào)用35號(hào)系統(tǒng)功能,在TD內(nèi)觀察到es為3002,bx為0F96;方法三,將0:40h開(kāi)始的低2個(gè)字節(jié)移至bx,高2個(gè)字節(jié)移至cx,得到
8、cx為3002,bx為0F96;比較上述三種方法得到的結(jié)果,發(fā)現(xiàn)它們一致,說(shuō)明以上方法實(shí)施得到的結(jié)果準(zhǔn)確無(wú)誤3.2任務(wù)23.2.1設(shè)計(jì)思想及存儲(chǔ)單元分配設(shè)計(jì)思想:修改鍵盤驅(qū)動(dòng)中斷程序(int16h),將中斷矢量表0:58h開(kāi)始的4個(gè)字節(jié)修改為新的中斷程序的偏移地址和段首址,并保存號(hào)舊的鍵盤驅(qū)動(dòng)中斷程序的偏移地址和段首址。在新的中斷程序中,先判斷用戶調(diào)用的是否為鍵盤驅(qū)動(dòng)中斷程序的讀入鍵盤功能,若不是,則直接調(diào)用舊的鍵盤驅(qū)動(dòng)中斷程序;若是,則對(duì)輸入進(jìn)行處理。實(shí)際上我們改變出口參數(shù)中AL的值即是鍵入字符的ASCII碼即可實(shí)現(xiàn)。3.2.2流程圖開(kāi)始INT36H的功能號(hào)為00H或10H調(diào)用OLD_INT
9、3.2.3源程序程序名renwu63.386DATASEGMENTUSE16DATAENDSCODESEGMENTUSE16ASSUMECS:CODE,SS:STACKOLD_INTDW?,?NEW16H:CMPAH,00HJEATBCMPAH,10HJEATBJMPDWORDPTROLD_INTATB:PUSHFCALLDWORDPTROLD_INTCMPAL,41H;比較輸入的ascii碼JNZNEXT1;MOVAL,42HJMPQUITNEXT1:CMPAL,42HJNZNEXT2MOVAL,41HJMPQUITNEXT2:CMPAL,61HJNZNEXT3MOVAL,62HJMPQUI
10、TNEXT3:CMPAL,62HJNZQUITMOVAL,61HQUIT:IRETSTART:XORAX,AXMOVDS,AXMOVAX,DS:16H*4MOVOLD_INT,AX;保存偏移部分MOVAX,DS:16H*4+2MOVOLD_INT+2,AX;保存段值CLIMOVWORDPTRDS:16H*4,OFFSETNEW16HMOVDS:16H*4+2,CSSTIMOVDX,OFFSETSTART+15SHRDX,4ADDDX,10HMOVAL,0MOVAH,31HINT21HCODEENDSSTACKSEGMENTUSE16STACKDB200DUP(0)STACKENDSENDSTA
11、RT3.2.4實(shí)驗(yàn)步驟1. 使用編輯程序EDIT.EXE錄入源程序renwu63,編譯,鏈接。2. 觀察提示信息,若出錯(cuò),則用編輯程序修改錯(cuò)誤,修改后再重新編譯。3. 執(zhí)行該程序輸入a/A,觀察是否輸出b/B;輸入b/B,觀察是否輸出a/A。3.2.5實(shí)驗(yàn)記錄實(shí)驗(yàn)環(huán)境條件:16M內(nèi)存;WINDOWSXP命令行窗口;EDIT.EXE2.0;MASM.EXE6.0;LINK.EXE5.2;TD.EXE5.0。在鍵盤鍵入a/A,發(fā)現(xiàn)屏幕回顯b/B;在鍵盤鍵入b/B,發(fā)現(xiàn)屏幕回顯a/A,證明程序編寫得準(zhǔn)確無(wú)誤當(dāng)輸入ababAB,輸出:0Cou.iajndJis%>noisnrcnuuGJaant
12、CR>HfiSMCon>|MCibillltvDriverCojiirrightCC>HicrosoftCorp1殆1.fillrightsreserutsdInokiny=HL.EKE/I.zZaxcrornHuS?,AvnHHhn也CR>naaanbloirU*lbalori6.況CnpyrifflilCOHirnspfrCurji1991,ftll-rihitwrrsrrwierf.Avvtfimblliiy=rv«kuu.63.«icviE:>linkKBNVUbJ.OBJnirosoftCR>Se<TmentedlExec
13、utableLinkerUetsidiii034Mlay241?¥1CoplightCC>MlcrosioftCorp1984-19,91Allerved.HunFilaHENNUb3.oxsJ=LltFlit-tifeLul.iidjjJ:LihmrinnI.lihlsDefinit:iDnFiloEmul.<deE"E*S>ri&nw«&J通過(guò)編寫代碼發(fā)現(xiàn),將舊的中斷程序的偏移地址與首地址保存下來(lái)后,可有有兩種方式調(diào)用舊的中斷程序:Jmpdwordptrold_int;Calldwordptrold_int;前一種方式,可直接
14、結(jié)束新的(不返回至)中斷程序;后一種方式,可返回至新的中斷程序。3.3任務(wù)33.3.1設(shè)計(jì)思想及存儲(chǔ)單元分配1號(hào)系統(tǒng)功能調(diào)用讀入字符,將用戶輸入轉(zhuǎn)化為數(shù)字,作為信息的偏移地址。然后調(diào)用in指令,從指定端口取出數(shù)據(jù)即可。3.3.2流程圖開(kāi)始.一號(hào)功能調(diào)用輸入字符轉(zhuǎn)化成數(shù)字INAX,D溢入AX輸出A敬據(jù)結(jié)束3.3.3源程序程序名renwu64.386datasegmentuse16bufdb2dataendsstacksegmentuse16stackdb200dup(0)stackendscodesegmentuse16assumeds:data,ss:stack,cs:codestart:mo
15、vax,datamovds,axlopa:movah,1int21hsubal,30hout70h,alinal,71hmovah,alandal,0fhshrah,4;讀入輸入;轉(zhuǎn)化成十進(jìn)制09;取出信息;轉(zhuǎn)化為ascll碼addax,3030hxchgah,almovbx,axleasi,bufmovwordptrsi+1,bxmovdl,0ah;輸出換行movah,2int21hmovdl,0dhmovah,2int21hmovdl,bl;輸出信息movah,2int21hmovdl,bhmovah,2int21hmovdl,0ah;輸出換行movah,2int21hmovdl,0dh1. movah,2int21hjmplopa;循環(huán)movah,4chint21hcodeendsendstart3.3.4實(shí)驗(yàn)步驟錄入源程序renwu64,編譯,鏈接。2. 觀察提示信息,若出錯(cuò),則用編輯程序修改錯(cuò)誤,修改后再重新編譯。3. 執(zhí)行該程序,0''9',然后觀察屏幕輸出信息,驗(yàn)證是否正確。3.3.5實(shí)驗(yàn)記錄實(shí)驗(yàn)環(huán)境條件:16M內(nèi)存;WINDOWSXP命令行窗口;EDIT.EXE2.0;MASM.EXE6.0;LINK.EXE5.2;TD.EXE5.0。1. 取出的信息按照BCD編碼進(jìn)行壓縮,分為兩部分,分別存儲(chǔ)在AL,AH。比
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣候變化下農(nóng)業(yè)生態(tài)系統(tǒng)的適應(yīng)性調(diào)整研究進(jìn)展
- 物聯(lián)網(wǎng)技術(shù)在智能家居生態(tài)圈的應(yīng)用前景
- 國(guó)慶節(jié)秋天主題活動(dòng)方案
- 現(xiàn)代辦公樓電力維護(hù)成本深度剖析
- 現(xiàn)代物流技術(shù)與醫(yī)療行業(yè)互補(bǔ)與共進(jìn)
- Unit 4 Friends Forever Understanding ideas 說(shuō)課稿-2024-2025學(xué)年高中英語(yǔ)外研版(2019)必修第一冊(cè)001
- 2023八年級(jí)物理上冊(cè) 第四章 在光的世界里第6節(jié) 神奇的眼睛說(shuō)課稿(新版)教科版
- 6《觀察土壤》說(shuō)課稿-2023-2024學(xué)年科學(xué)四年級(jí)下冊(cè)教科版
- 2023二年級(jí)語(yǔ)文上冊(cè) 第八單元 24 風(fēng)娃娃說(shuō)課稿 新人教版
- 18《文言文二則 鐵杵成針》(說(shuō)課稿)2023-2024學(xué)年-統(tǒng)編版四年級(jí)語(yǔ)文下冊(cè)
- 北京地鐵13號(hào)線
- 塑料成型模具設(shè)計(jì)(第2版)江昌勇課件1-塑料概述
- 產(chǎn)業(yè)園EPC總承包工程項(xiàng)目施工組織設(shè)計(jì)
- 方形補(bǔ)償器計(jì)算
- 為加入燒火佬協(xié)會(huì)致辭(7篇)
- 兒科重癥監(jiān)護(hù)病房管理演示文稿
- 甲基異丁基甲酮化學(xué)品安全技術(shù)說(shuō)明書
- 條形基礎(chǔ)的平法識(shí)圖課件
- 秘書實(shí)務(wù)完整版課件全套ppt教程
- 新版神經(jīng)系統(tǒng)疾病的病史采集和體格檢查ppt
- 義務(wù)教育《歷史》課程標(biāo)準(zhǔn)(2022年版)
評(píng)論
0/150
提交評(píng)論