C ++中的内联汇编失败了吗?

时间:2014-03-21 10:09:38

标签: c++ visual-studio visual-c++ assembly inline-assembly

好吧基本上我写了一个汇编函数来检测运行时是否存在某个进程。我没有完全得到内联汇编,即使我用asm包装器包装汇编代码,它仍然将内部代码检测为C代码...基本上它有点像这样:

__inline bool isProcLoaded()
{
    _asm
    {
        mov ah, 0x48
        int     0x68 ; After compiling it breaks on this line, the 'int' is highlighted
        cmp ax ...
    }
}

这里有什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:1)

这可能是因为int是一个中断指令,现在在用户模式下很少有用,因为大多数中断都是特权(related)。

如果没有更多详细信息,我无法告诉你在这里想要实现什么,虽然在搜索开头看起来类似于检测SoftICE调试器的方法,而且代码很古老(DOS和早期的Windows时代)所以在现代操作系统上,你得到0xC0000005 STATUS_ACCESS_VIOLATION例外似乎是合理的。