MSVC __asm的“不正确的操作数类型”

时间:2012-03-30 21:12:52

标签: visual-c++ assembly

我正在进行一些随机实验,并希望在给定点打印出程序所在的地址。我尝试了以下操作,但它不起作用:

void foo() {
    DWORD blah;
    __asm {
        mov blah, eip
    }
    std::cout << blah << "\n";
}

而是在mov行上提供“不正确的操作数类型”。

我为blah尝试了几种类型。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

没有可以触摸eip寄存器的mov指令。你将不得不使用某种技巧来获得它的价值。

How to check the EIP value with assembly language?