- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
内部中断服务程序 利用过程定义伪指令PROC和ENDP 要执行STI指令开放可屏蔽中断 最后执行IRET指令返回调用程序 用寄存器传递参数 中断调用指令INT N执行内部中断服务程序 设置中断向量:AH=25H号DOS功能调用 获取中断向量:AH=35H号DOS功能调用 [例题8-4]内部中断服务程序-1 ;数据段 intoff dw ? ;用于保存原中断服务程序的偏移地址 intseg dw ? ;用于保存原中断服务程序的段地址 intmsg db A Instruction Interrupt!,0dh,0ah,0 ;字符串(以0结尾) ;代码段 mov ax,3580h ;获取原80H中断向量 int 21h mov intoff,bx ;保存偏移地址 mov intseg,es ;保存段基地址 [例题8-4]内部中断服务程序-2 push ds mov dx,offset new80h mov ax,seg new80h mov ds,ax mov ax,2580h ;设置80H中断向量 int 21h pop ds mov dx,offset intmsg ;设置入口参数DS和DX int 80h ;调用80H中断服务程序,显示字符串 [例题8-4]内部中断服务程序-3 mov dx,intoff ;恢复原80H中断向量 mov ax,intseg ;注意先设置DX、后设置DS入口参数 mov ds,ax ;先改变了DS,就不能准确取得intoff变量值 mov ax,2580h int 21h .exit [例题8-4]内部中断服务程序-4 ;80H内部中断服务程序:显示字符串(以0结尾) ;DS∶DX=缓冲区首地址 new80h proc ;过程定义 sti ;开中断 push ax ;保护寄存器 push bx push si mov si,dx new1: mov al,[si] ;获取欲显示字符 cmp al,0 ;为“0”结束 jz new2 [例题8-4]内部中断服务程序-5 mov bx,0 ;采用ROM-BIOS调用显示一个字符 mov ah,0eh int 10h inc si ;显示下一个字符 jmp new1 new2: pop si ;恢复寄存器 pop bx pop ax iret ;中断返回 new80h endp ;中断服务程序结束 外部中断 外部中断特点: 由CPU外部请求引发中断; INTR*、NMI引脚接受中断请求信号; 可能在一个程序执行的任何时刻发生; 中断与正在执行的指令无关; 中断与处理器操作异步。 中断请求方式:电平触发方式、边沿触发方式 中断源的识别:中断源是指引起中断的原因或发出中断申请的来源; 中断请求的优先权排队问题:当有多个中断源同时请求中断时,需根据轻重缓急先后次序予以处理,这就是优先权排队问题; 中断的屏蔽:在一定情况下不响应外部中断请求(设置标志位IF ); 中断的多级嵌套:在优先权级别较低的中断源被服务时,允许比它优先级别高的中断源请求中断。 中断的结束:CPU响应中断后撤除中断源请求 中断控制器8259A PIC(Programmable Interrupt Controller) 8259A的功能结构 8259A寄存器结构 端口地址的确定 假设:8259A的端口地址为:20,21H,某8位CPU和8259A的地址线如何连接? A0=1 A0=0 ICW1 —初始化字 ICW2 —中断向量码 ICW3 —级连控制字 ICW4 —中断结束方式字 OCW1 —中断屏蔽字 OCW2 —中断结束和优先级循环 OCW3 —屏蔽方式和读出控制字 中断触发方式(此方式由ICW1寄存器来设置) 中断屏蔽方式(此方式由IMR确定) 特殊屏蔽方式(此方式由OCW3和IMR确定) 完全嵌套方式: SFNM=0 在对8259进行初始化后,没有设置其它优先级方式,则自动按此方式工作; 特点:中断请求按优先级IR0~IR7级进行处理,IR0级中断的优先级最高。 特殊全嵌套方式: SFNM=1 用途:多片级联方式, 特殊全嵌套方式仅设置在主片中. 特点: 和全嵌套方式基本相同,不同的是:在处理中断时,可响应同级中断,从而实现对同级中断请求的特殊嵌套。 优先级自动循环方式:R,SL,EOI=1,0,0 用途:多个中断源优先级相等的场合; 特点:优先级是在变化的,一个设备中断处理完后, 它的优先级自动降为最低。 优先级指定方式:R,SL,EOI=1,1,0;设置L1L2L3 指定最低优先级,例如设置IRi为最低优先级,则最高优先级
文档评论(0)