版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
7.2內(nèi)部中斷服務(wù)程序編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似利用過程定義偽指令PROC/ENDP第1條指令通常為開中斷指令STI最后用中斷返回指令I(lǐng)RET通常采用寄存器傳遞參數(shù)主程序需要調(diào)用中斷服務(wù)程序調(diào)用前,需要設(shè)置中斷向量利用INTn指令調(diào)用中斷服務(wù)程序例7.1內(nèi)部中斷服務(wù)程序編寫80H號中斷服務(wù)程序功能:顯示以“0”結(jié)尾字符串的功能利用顯示器功能調(diào)用INT10H字符串緩沖區(qū)首地址為入口參數(shù)DS:DX(段地址:偏移地址)傳遞參數(shù)數(shù)據(jù)段 intoff dw? intseg dw? intmsg db‘AInstructionInterrupt!’ db0dh,0ah,0例7.1以“0”結(jié)尾回車、換行保存中斷向量
movax,3580h int21h movintoff,bx ;保存偏移地址 movintseg,es ;保存段基地址例7.1獲取中斷向量(DOS功能調(diào)用INT21H)功能號:AH=35H入口參數(shù):AL=中斷向量號出口參數(shù):ES:BX=中斷向量(段地址:偏移地址)設(shè)置中斷向量pushdsmovdx,offsetnew80hmovax,segnew80hmovds,axmovax,2580hint21hpopds例7.1設(shè)置中斷向量(DOS功能調(diào)用INT21H)功能號:AH=25H入口參數(shù):AL=中斷向量號DS:DX=中斷向量(段地址:偏移地址)調(diào)用中斷服務(wù)程序;設(shè)置入口參數(shù): DS=段地址(已設(shè)置) DX=偏移地址
movdx,offsetintmsg int80h ;調(diào)用80H中斷服務(wù)程序例7.1AInstructionInterrupt!;80H號內(nèi)部中斷服務(wù)程序:;顯示字符串(以“0”結(jié)尾);入口參數(shù):DS:DX=緩沖器首地址 new80h proc
sti ;開中斷 pushax ;保護寄存器 pushbx pushsi例7.1進入中斷服務(wù)程序AInstructionInterrupt!顯示字符串
movsi,dxnew1: moval,[si] cmpal,0 jznew2 movbx,0 movah,0eh int10h incsi jmpnew1例7.1AInstructionInterrupt!退出中斷服務(wù)程序
new2: popsi ;恢復(fù)寄存器 popbx popax
iret ;中斷返回 new80h endp例7.1AInstructionInterrupt!主程序結(jié)束
movdx,intoff movax,intseg movds,ax movax,2580h int21h movax,4c00h int21h例7.1AInstructionInterrupt!7.38259A中斷控制器Intel8259A是可編程中斷控制器PIC可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中斷8259A的基本功能一片8259A可以管理8級中斷,可擴展至64級每一級中斷都可單獨被屏蔽或允許在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號8259A設(shè)計有多種工作方式,可通過編程選擇初始化主片8259A
moval,11h ;寫入ICW1 out20h,al jmpintr1 intr1: moval,08h ;寫入ICW2 out21h,al jmpintr2 intr2: moval,04h ;寫入ICW3 out21h,al jmpintr3 intr3: moval,1h ;寫入ICW4 out21h,al中斷控制器的初始化程序段初始化從片8259A
moval,11h ;寫入ICW1 out0a0h,al jmpintr5intr5: moval,70h ;寫入ICW2 out0a1h,al jmpintr6intr6: moval,02h ;寫入ICW3 out0a1h,al jmpintr7intr7: moval,01h ;寫入ICW4 out0a1h,al中斷控制器的初始化程序段2.操作命令字OCW8259A工作期間,可以隨時接受操作命令字OCWOCW共有3個:OCW1~OCW3寫入時沒有順序要求,需要哪個OCW就寫入那個OCWD7D6D5D4D3D2D1D0OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字內(nèi)容寫入中斷屏蔽寄存器IMRDi=Mi對應(yīng)IRi,為1禁止IRi中斷;為0允許IRi中斷。各位互相獨立。OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和EOI配合使用產(chǎn)生中斷結(jié)束EOI命令和改變優(yōu)先權(quán)順序L2~L0的3位編碼指定IR引腳7.5外部中斷服務(wù)程序編寫外部可屏蔽中斷服務(wù)程序,需注意:發(fā)送中斷結(jié)束命令一般只能采用存儲單元傳遞參數(shù)不要使用DOS系統(tǒng)功能調(diào)用中斷服務(wù)程序盡量短小7.5外部中斷服務(wù)程序(續(xù))編寫主程序,需注意:修改中斷向量控制CPU的中斷允許標(biāo)志設(shè)置8259A的中斷屏蔽寄存器例題7.2可屏蔽中斷服務(wù)程序8259A的IRQ0(向量號為08H)中斷請求來自定時器8253,每隔55ms產(chǎn)生一次本程序的08H號中斷服務(wù)程序,每次中斷顯示一串信息,顯示10次用內(nèi)存單元(共享變量)在主程序與外部中斷服務(wù)程序之間傳遞參數(shù):中斷次數(shù)顯示信息也安排在共同的數(shù)據(jù)段中數(shù)據(jù)段 intmsg db‘A8259AInterrupt!’ db0dh,0ah,0 counter db0例7.2保存中斷向量
movax,3508h int21h pushbx ;保存偏移地址 pushes ;保存段基地址例7.2設(shè)置中斷向量 cli
pushds movdx,offsetnew08h movax,segnew08h movds,ax movax,2508h int21h popds例7.2設(shè)置中斷寄存器
inal,21h pushax andal,0feh ;允許IRQ0 out21h,al movcounter,0 ;設(shè)置中斷次數(shù)初值 sti ;開中斷例7.2循環(huán)等待中斷
start1: cmpcounter,10 jbstart1 ;中斷10次退出例7.2中斷就在主程序循環(huán)當(dāng)中 new08h proc
sti ;開中斷 pushax ;保護寄存器 pushbx pushds
movax,data movds,ax ;設(shè)置數(shù)據(jù)段DS例7.2進入中斷服務(wù)程序中斷處理
inccounter movsi,offsetintmsg ;顯示信息 calldpstri例7.2顯示字符串
dpstri proc ;顯示字符串子程序 pushax pushbx dps1: lodsb cmpal,0 jzdps2例7.2顯示字符串(續(xù))
movbx,0 movah,0eh int10h jmpdps1 dps2: popbx popax ret dpstri endp例7.2退出中斷服務(wù)程序 moval,20h out20h,al popds ;恢復(fù)寄存器 popbx popax
iret ;中斷返回 new08h endp例7.2主程序結(jié)束 cli
popax out21h,al popdx popds movax,2508h int21h
sti movax,4c00h int21h例7.2A8259AInterrupt!A8259AInterrupt!A8259AInterrupt!A8259AInterrupt!A8259AInterrupt!A8259AInterrupt!A8259AInterrupt!A8259AInterrupt!A8259AInterrupt!A8259AInterrupt!7.6駐留中斷服務(wù)程序駐留TSR(TerminateandStayResident)程序用戶程序運行后仍然保存在主存中,可以讓其他程序使用利用DOS功能調(diào)用31H代替4CH終止程序小型駐留程序常編寫成COM程序駐留程序也可以編寫成EXE程序需要駐留內(nèi)存的程序段要寫在前面例題7.3報時中斷駐留服務(wù)程序系統(tǒng)08H號中斷服務(wù)程序調(diào)用1CH中斷每隔55ms調(diào)用這個報時中斷,中斷65543次就是時間過了一個小時本例編寫一個駐留內(nèi)存的1CH內(nèi)部中斷服務(wù)程序?qū)崿F(xiàn)每過一小時就顯示信息執(zhí)行此程序后,報時中斷服務(wù)程序?qū)Ⅰv留內(nèi)存 new1ch proc
sti ;開中斷 pushsi ;保護寄存器 pushds
movsi,cs movds,si ;設(shè)置數(shù)據(jù)段DS addcountl,1 adccounth,0例7.3進入中斷服務(wù)程序中斷處理
cmpcountl,hourl jnzn1ch1 cmpcounth,hourh jnzn1ch1 movcountl,0 movcounth,0 movsi,offsetintmsg calldpstri例7.3退出中斷服務(wù)程序
n1ch1: popds ;恢復(fù)寄存器 popsi
iret ;中斷返回 countl dw0 counth dw0 intmsg db‘OneHourHasPassed!’ db0dh,0ah,0 new1ch endp例7.3OneHourHasPassed!顯示字符串
dpstri proc ;顯示字符串子程序 pushax pushbx dps1: lodsb cmpal,0 jzdps2例7.3顯示字符串(續(xù))
movbx,0 movah,0eh int10h jmpdps1 dps2: popbx popax ret dpstri endp例7.3主程序開始
start: movax,cs movds,ax movdx,offsetnew1ch
cli movax,251ch int21h
sti movdx,offsettsrmsg movah,09h int21h例7.3主程序結(jié)束 movdx,offsetstart adddx,15 movcl,4 shrdx,cl adddx,10h
movax,3100h ;程序駐留 int21h tsrmsg db‘INT1CHProgramInstalled!’ db0dh,0ah,'$' endstart例7.3INT1CHProgramInstalled!第7章教學(xué)要求1.熟悉8088的中斷類型、中斷響應(yīng)過程、中斷向量表2.掌握內(nèi)部中斷服務(wù)程序的編寫3.理解8259A的內(nèi)部結(jié)構(gòu)、寄存器作用、中斷過程4.掌握8259A的普通全嵌套優(yōu)先權(quán)、普通中斷結(jié)束、邊沿觸發(fā)方式第7章教學(xué)要求(續(xù))5.了解的8259A的ICW和OCW,注意命令字和狀態(tài)字的區(qū)別方法6.了解8259A在IBMPC系列機上的應(yīng)用情況7.掌握外部中斷服務(wù)程序的編寫習(xí)題7(第189頁)——
7.47.69.99.119.13實驗2中斷實驗
不用實驗臺,實現(xiàn)例題程序例7.1內(nèi)部中斷服務(wù)程序例7.2可屏蔽中斷服務(wù)程序例7.3駐留中斷服務(wù)程序然后,按照實驗要求進行
提示返回8088的中斷向量表向量號255的CS值用戶中斷(向量號255)3FCH向量號255的IP值……向量號2的CS值非屏蔽中斷(向量號2)008H向量號2的IP值向量號1的CS值單步中斷(向量號1)004H向量號1的IP值向量號0的CS值除法錯中斷(向量號0)000H向量號0的IP值CAS0IR0CAS1IR1CAS2IR2
IR3INTAIR4
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新版五年級英語下冊教案
- 上課遲到檢討書(合集15篇)
- 行業(yè)調(diào)研報告匯編4篇
- 中考熱點素材集合15篇
- 電子公司實習(xí)報告匯編7篇
- 《呼蘭河傳》讀書筆記(15篇)
- 邊城讀書筆記(15篇)
- 喹諾酮類抗菌藥物合理使用的理性思考
- 七年級地理教學(xué)工作計劃范例(20篇)
- 入伍保留勞動關(guān)系協(xié)議書(2篇)
- 對加快推進新型工業(yè)化的認(rèn)識及思考
- 移植后淋巴細胞增殖性疾病
- 風(fēng)光儲儲能項目PCS艙、電池艙吊裝方案
- ZPW-2000A四線制改變運行方向電路
- 中醫(yī)跟師總結(jié)論文3000字(通用3篇)
- 《軍隊征集和招錄人員政治考核規(guī)定》
- 住宅小區(qū)視頻監(jiān)控清單及報價2020
- 電動三輪車監(jiān)理細則
- 《鋁及鋁合金厚板殘余應(yīng)力測試方法 切縫翹曲法》
- 作文互改互批互評探究課題研究方案
- 四川內(nèi)江城市文化介紹宣傳PPT
評論
0/150
提交評論