我在钩子(Hook)int 09h时遇到问题,我已将指针更改为新的Isr,如果在Windows上调试,则每次按下按键时都会触发中断。但是在VMWare中,似乎只被触发一次,而不再被触发。我已经在DOS 6.22中进行了测试,并且情况完全相同。
我的代码如下所示:
MyIsr:
pusha
pushf
;tell PIC that interrupt has finished
mov al,0x20
out 0x20,al
popf
popa
iret
如果使用USB键盘,是否可以发送与Ps / 2相同的命令?
最佳答案
这里可能存在许多问题,因为您尚未发布所编写代码的完整 View 。您能否确切说明您要完成的工作?
如果调用了ISR且未对其进行处理,则您将无能为力,因此请记住这一点。您的问题可能与如何在中断 vector 表中安装ISR有关。
无论如何,您的ISR应该看起来更像以下内容:
newInt9:
enter 0,0
push eax
in al, 60h
mov [raw_key], al
mov al, 20h
out 20h, al
pop eax
leave
iret
; endproc
关于assembly - Hooking Int 09h中断,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9566821/