主题:中断向量的疑问
ronaldoa
[专家分:30] 发布于 2006-03-18 18:33:00
请问如何在windows xp 的环境下用masm 来使用中断的向量
就是如何能够用int 指令;
在xp 的环境下中断向量是保护起来的.怎么办?
回复列表 (共3个回复)
沙发
C语言爱好者 [专家分:19410] 发布于 2006-03-18 19:38:00
BIOS里面不少中断都被xp保护起来了,这部分中断除非编写xp的驱动级代码,否则是不能直接访问的。
不过xp的命令提示符虚拟了DOS的部分内核,有些原DOS提供的中断以及DOS内核int 21h的部分功能仍然可以使用。
你想试验BIOS中断的话,可以通过VMWARE装一个DOS。
板凳
bbkx [专家分:0] 发布于 2006-03-21 23:12:00
VMWARE 是什么啊?
3 楼
fucker [专家分:680] 发布于 2006-03-22 19:31:00
nt kernel 使用的不是 real mode 的 中断向量表, 而是 ptr mode 的
int gate。 可以用 hook IDT 方法替换 IDT 中相应的描述符,在你自己
的 ISR 中完成功能在 call 原始的 int。修改需要有 ring 0 权限,这个
跟 9x 不一样 sidt 虽然不是特权指令,但修改需要在 ring 0 下。
我来回复