设为首页  |  加入收藏
新闻动态
控制的原始状态
发布人:管理员   发布时间:2014-4-21

解决上面例子中存在的问题,可以采用很简便的办法,即把上述3条指令改用一条指令:
ANDB INT_PENDING,#bit—mask
        由于一条指令是不可分割的,也就不会造成所说的错误。但是在一些较复杂的情况下,我们不可能采用如此简单的解决办法,这时可以通过建立所谓“中断禁区”的办法来解决上述问题。
        建立中断禁区的简单办法是在修改共享数据之前,用DI指令禁止中断,在修改之后,再用EI指令开襟。这种办法的缺点是,不管修改前中断允许与否,执行EI指令后总是允许中断的。
建立中断禁区的更好办法是采用PUSHF和POPF指令。微机消谐PUSHF指令执行后,中断允许标志和中断屏蔽寄存器同时被清除,禁止中断,保证安全地修改共享数据。POPF指令执行后,恢复中断.在多处理机或其他复杂结构的系统中,可能要采取更多的保护措施以形成“禁区”。

下一篇:中断禁区
扫描添加微信账号