这是16位c ++编译器中的代码。
//restore interrupt
void CAzimuth::restoreISR()
{
__asm{
cli
mov ax,205h
mov bl,0fh
mov cx,seg OldInt
mov dx,offset OldInt
int 31h
sti
}
}
//install interrupt
void CAzimuth::installISR()
{
unsigned int u1,u2;
__asm{
//access the original vector
cli
mov ax,204h
mov bl,0fh
int 31h
mov u1,cx
mov u2,dx
sti
}
OldInt=(INTPTR)(_MK_FP(u1,u2));
__asm{
//fill in new interrupt vector
cli
mov ax,205h
mov bl,0fh
mov cx,seg NewInt
mov dx,offset NewInt
int 31h
sti
}
}
答案 0 :(得分:0)
这是一个古老的DOS保护模式接口系统调用来设置保护模式中断向量。参见例如http://www.delorie.com/djgpp/doc/dpmi/api/310205.html。编译器可能是DJGPP。将其移植到不同的OS和/或运行时系统将需要从头开始重新设计以重新实现DPMI下提供的中断处理程序的任何功能。祝你好运。可能是从简单到近乎不可能的任何事情。