我有一个问题挂钩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吗?
答案 0 :(得分:1)
这里可能存在许多问题,因为您还没有发布您正在编写的代码的完整视图。能否详细解释一下你要完成什么?
如果调用ISR但未处理,则无法执行任何操作,请记住这一点。您的问题可能与您在中断向量表中安装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