使用寄存器调用中断
Calling interrupts using a register
我正试图从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
}
为什么我会犯那个错误?关于为什么会发生这种情况,有什么建议吗?
int
从不将寄存器作为操作数,只将字节文字作为操作数。如果您希望能够在寄存器中指定要调用的中断,则需要使用调度表。
相关文章:
- 为什么我的中断被调用,但不会进入处理程序?
- C++ 为什么运算符>会中断嵌套的运算符()调用?
- 中断功能调用与正常功能
- C++:从 pthread 调用 sendmail 会导致管道中断
- 每当在C++中调用 delete/delete[] 时都会中断调试器
- 干净编码:如何从循环中的函数调用内部中断循环
- Winapi:可以通过异步程序调用中断消息循环
- 被信号中断的系统调用仍然需要完成
- 中断已处于条件变量等待调用中的提升线程
- 使用寄存器调用中断
- 调用delete[]会中断我的C++程序
- 程序中断时调用的析构函数
- 异步过程调用被另一个线程中断
- 被覆盖的插槽应该不被调用中断JavaScript()
- GDB/LLDB 调用一个函数并中断它
- Linux 中的信号处理和中断的函数调用
- C++当被ctrl-c中断时,在死亡之前调用带有参数(信号号除外)的函数
- 虚拟继承会中断初始化列表显式构造函数调用
- 从特定函数调用时引发异常时GDB中断
- 中断调用函数中的 while 循环