中断控制器是什么

中国安全门禁网,联网考勤门禁,联动门禁 2008-6-1 16:16:14

随后,cpu会再次发送一个inta信号给8259a,要求它告诉cpu此中断请求的中断向量是什么,这是一个从0到255的一个数。8259a根据被设置的起始向量号(起始向量号通过中断控制字icw2被初始化)加上中断请求号计算出中断向量号,并将其放置在databus上。比如被初始化的起始向量号为8,当前的中断请求为ir3,则计算出的中断向量为8+3=11。

cpu从databus上得到这个中断向量之后,就去idt中找到相应的中断服务程序isr,并调用它。如果8259a的endofinterrupt(eoi)通知被设定位人工模式,那么当isr处理完该处理的事情之后,应该发送一个eoi给8259a。

8259a得到eoi通知之后,isr寄存器中对应于此中断请求的bit会被reset。

如果8259a的endofinterrupt(eoi)通知被设定位自动模式,那么在第2个inta信号收到后,8259aisr寄存器中对应于此中断请求的bit就会被reset。

在此期间,如果又有新的中断请求到达,并被放置于irr中,如果这些新的中断请求中有比在isr寄存中放置的所有中断优先级别还高的话,那么这些高优先级别的中断请求将会被马上按照上述过程进行处理;否则,这些中断将会被放在irr中,直到isr中高优先级别的中断被处理结束,也就是说知道isr寄存器中高优先级别的bit被reset为止.

如果您认为本词条还有待完善,需要补充新内容或修改错误内容,请

贡献者(共1名):

关于本词条的评论(共2条):

©2008baidu

if(flag==1){ document.write(<\/script>); showmsg(); } //关于展开收起的js if(g(cat)){varlitems=g(cat).getelementsbytagname(li); varlitemnum=litems.length2; varcatlist={ dir:g(dir), cat:g(cat), temp:g(temp), data:g(data), more:g(more), catcon:, t:null, h:0, temph:0, items:litems, itemnum:litemnum, shownum:8 }; functionhidecat(){ if(catlist.itemnum<=catlist.shownum){ returnfalse; } varcatw=catlist.cat.offsetwidth; catlist.cat.style.width=catw+px; catlist.data.style.width=catw+px; for(vari=catlist.shownum;i+catlist.items[i].innerhtml+; catlist.items[i].style.display=none; } catlist.more.style.display=block; catlist.data.innerhtml=catlist.catcon; catlist.temph=catlist.data.offsetheight; catlist.data.style.margintop=catlist.temph+px; } functionmaxcat(){ if(catlist.h0){ catlist.h=10; catlist.temp.style.height=catlist.h+px; catlist.data.style.margintop=(catlist.temphcatlist.h)+px; catlist.t=settimeout(mincat(),10); } if(catlist.h==10){ catlist.temp.style.borderbottom=none; } } functioncontains2(objf,objc) { while(objc) { objc=objc.parentnode?objc.parentnode:objc; if(objc==objf)returntrue; returnfalse; } } catlist.dir.onmouseover=function(e){ cleartimeout(catlist.t); catlist.t=settimeout(maxcat(),100); }; catlist.dir.onmouseout=function(e){ if(document.all){ cleartimeout(catlist.t); }else{ if(e.currenttarget!=e.relatedtarget&&!contains2(e.currenttarget,e.relatedtarget)) cleartimeout(catlist.t); } catlist.t=settimeout(mincat(),100); //离开目标时,鼠标所在的点 //当前目标所在点和this类似 }; hidecat();}

责任编辑: 参与评论
Powered By: 021menjin.com.cn 3.0 Beta