设为首页  |  加入收藏
新闻动态
中断寄存器
发布人:管理员   发布时间:2014-4-17
        1.执行特定的硬件中断调用指令时,把现有的PC值压入堆栈,把相应的中断矢量装入PC。紧接中断调用之后,硬件不允许立即为另一次中断服务。这就保证了一旦一次中断起动后,其服务程序中的第一条指令一定会执行。
        2.因而,PUSHF指令一定会执行。其结果将禁止所有中断,保证执行下一条指令LDB INT—MASK。
        3.LDB INT-MASK指令可按程序员的意愿,允许一些中断打断正在执行的串口中断服务程序。
        4.在本中断服务程序的末尾,一条POPF指令恢复了中断调用时的PSW的内容。硬件不允许紧跟着POPF指令之后立即处理中断,因此,可保证在发生进一步终端之前执行下一条指令RET。若不能保证这一点,比如,POPF指令执行后,重新允许已悬挂起来的某一中断,此中断立即得到服务,则原始的中断的返回地址将继续留在堆栈中。一般情况下,这种状况不制造成什么问题,而当以很高频率产生中断时,有可能导致堆栈溢出。微机消谐POPF指令恢复了中断屏蔽寄存器的原始内容,因此,在中断服务程序中对它作的任何修改,在中断返回后将失去作用。
        在上面的中断服务程序中,并未对工作寄存器进行保护和恢复,这是因为8096寄存器阵列中,有230个字节寄存器都可以作工作寄存器,在软件设计中,我们可以为一些子程序分配专用的工作寄存器。
上一篇:中断禁区
扫描添加微信账号