我试图通过回到实模式,调用中断并返回到保护模式,从C ++中的保护模式调用一些中断。我收到一个错误:
C2400:操作数类型不正确
我正在努力解决这个问题,但我不知道从哪里开始。以下是我的代码摘录:
void intupt(char intr) //Call interrupt function. INTR is number of interrupt.
{
pm2rm(); //Protected Mode To Real Mode
__asm
{
mov al, [intr] //Put intr to AL register
int al // call interrupt using AL
}
rm2pm(); //Real Mode to Protected Mode
}
为什么我会收到该错误?关于为什么会发生这种情况的任何建议?
答案 0 :(得分:4)
int
永远不会将寄存器作为操作数,只是一个字节文字。如果您希望能够在寄存器中指定要调用的中断,则需要使用调度表。