在开发虚拟机时,我需要编写 BIOS 中断处理程序。
简而言之:
void bios_call(uint8_t code) {
switch(code) {
...
case 2:
goto NMI_CALL;
break;
...
}
int main()
{
...
NMI_CALL:
printf("Called interput NMI(int 2)\n");
system("pause");
return 1;
}
因为goto
我不知道哪个函数return 1;
会返回 1(bios_call
或main
)。
可能需要采取类似措施asm("pop")
才能重新获得控制权。main()
是的,代码不起作用,中断应该在 IVT(内存中)中,而不是在外部函数中,所以这个问题毫无意义,但由于 StackOverflow 规则我无法删除(问题已经得到解答)。对不起。