
中断
(续)
地址存储在堆栈上,并恢复该地址的
程序计数器。程序的执行,然后与收益
将已执行下一条指令有有
一直没有中断。如果没有等待任何有效的中断,
优先级最高的中断后重新立刻给予响应
把从以前中断。
VIS指令
一般的中断服务程序,它开始于地址
00FF十六进制,必须能够处理所有类型的接口
中断产生。在VIS指令,连同一个中断向量
表,指示该设备的特定的中断处理例行程序
齿基于中断的原因。
VIS是一个单字节指令,典型地用在非常BE-
在地址的一般中断服务程序的轧花
00FF十六进制,或在短期内这一点后,只用了代码之后
对于上下文切换。在VIS指令决定了
启用和待处理中断的优先级最高,而
导致间接跳转到地址对应于该
中断源。跳转地址(向量)的所有可能
sible中断源存储在一个矢量表。
向量表可长达32个字节(最多16个
向量),并驻留在256字节块载的顶部
荷兰国际集团的VIS指令。然而,如果VIS指令是在
256字节块的最高层(以00FF十六进制,如) ,该
矢量表驻留在接下来的256字节数据块的顶部。
因此,如果VIS指令位于某处之间
00FF和01DF十六进制(通常情况下) ,该量表是某一地址
地址01E0和01FF十六进制之间的标识。如果VIS IN-
梁支位于01FF和02DF十六进制之间,那么
量表位于地址02E0和02FF之间
十六进制,等等。
每个向量是15位长,并指向的开头
特定中断服务,在32千字节的某处例程
存储器空间。每个向量占用两个字节的向量的
表中,用在低位地址的高字节。该
矢量顺序排列的中断优先级。矢量
可屏蔽中断与最低级的是位于
0yE0 (高字节)和0yE1 (低字节) 。该
下一个优先级的中断位于0yE2和0yE3等
提出增加军衔。软件陷阱具有最高
排名和矢量始终位于0yFE和0yFF 。该
中断可以被激活的数量定义
表中的尺寸。
在向量表中的中断源的顺序排列
等级,从最高到最低的优先级。如果两个或多个使能
和待处理中断的同时检测到,则
具有最高优先级,首先服务。返回时
从中断服务程序,下一个最高级别
挂起的中断服务程序。
如果VIS指令被执行,但没有中断恩
体健和等待,最低优先级的中断向量
使用的,并且跳转到对应的地址中
向量表。这是一个不寻常的事件发生,并可以是
一个错误的结果。它可以从一个变化合理地导致
在启动之前,在执行位或挂起标志
在VIS指令,如执行单周期指令
化而清除的使能标志在同一时间,该
标志位被置位。它也可以导致,但是,从不经意
耳鼻喉科执行VIS命令的上下文之外
一个中断。
默认VIS中断向量可以是应用有用
在其中可发生时间关键中断期间的系统蒸发散
另一个中断服务。而不是恢复亲
克上下文( A, B,X等)和执行RETI指令
化,中断服务程序可通过报税表中被终止
荷兰国际集团的VIS指令。在这种情况下,中断将
服务反过来直到没有进一步的中断处于挂起状态,
默认VIS例程开始。测试GIE位后
确保执行不误,日常应
恢复程序上下文并执行RETI返回
被中断的程序。
该技术可节省高达50个指令周期(T
c
) ,或者
更多的, ( 50μs的10 MHz振荡器),等待时间为待定IN-
中断随时少于10个指令周期的罚款,如果
没有进一步的中断挂起。
为了确保操作可靠,用户应该总是使用
VIS指令来确定中断的源。 AL-
虽然是可能的轮询挂起位以检测
一个中断源,这种做法是不推荐的。该
使用轮询的允许标准仲裁排名是AL-
羊羔,但在中断系统的可靠性是compro-
谐振边缘。投票程序必须单独测试启用
和正在申请的每一个可屏蔽中断位。如果软件
陷阱中断应该发生,它会被最后提供服务,甚至
尽管它应该具有最高的优先级。在几个特定的
ditions ,一个软件陷阱可以被触发,但不提供服务,
导致一个无意“锁定了”全屏蔽接口的
中断产生由软件陷阱挂起国旗。如出现问题
此,可避免使用VIS指令。
表3
示出了中断类型,中断仲裁
排名,以及相应的向量中的位置
向量表。
向量表应与存储器被填充由用户
具体位置中断服务程序。为前
充足的,如果软件陷阱程序位于0310十六进制,
那么向量单元0yFE和-0yFF应该包含
数据03和10进制,分别。当一个软件陷阱IN-
中断发生时和VIS指令被执行,则程
克跳转到矢量表中指定的地址。
25
www.national.com