@H_403_6@
我正在尝试编写简单的程序,用自定义的程序替换标准的键盘中断,这应该只减少一些变量.但是没有旧的处理程序调用它将无法工作.
这是我的中断处理程序:
这是我的中断处理程序:
handler proc push ax push di dec EF ;pushf ;when these to instructions commented keyboard interrupts handling hangs ;call [OLD] mov al,20h out 20h,al pop di pop ax iret handler endp
我应该在我的处理程序中执行哪些操作以使其在没有旧处理程序的情况下工作
谢谢.
解决方法
>您需要在堆栈上保存DS并将其设置为程序的正确值,然后在iret之前恢复它.
>这部分:
>这部分:
mov al,20h out 20h,al
承认中断.如果你调用BIOS中断处理程序,那么你不应该这样做,因为BIOS处理程序会这样做.