添加一些内联汇编代码后,Visual Studio优化器崩溃

时间:2014-07-31 14:08:36

标签: c inline-assembly

我之前的代码中有__asm块,但我想做一些更改。

我有一个裸函数拦截了API调用并修改了其中一个参数。 我这样做是通过弹出堆栈中的所有参数,修改目标并将其推回。

我不想再与堆栈交互了,我尝试了这个

__asm
{
    // make the stack frame
    push ebp
    mov ebp, esp

    mov eax, [ebp + 8]
    mov param0, eax
};

// here I modify param0
__asm
{
    mov eax, param0
    mov [ebp + 8], eax // accessing parameters the right way
    jmp continueAdr // this gives control back to the hooked function
};

这给了我一个" Microsoft(R)C / C ++优化编译器已停止工作"。 它告诉我"环顾四周"一段代码,但它与一个完全不同的功能,与此无关。 我该如何解决这个问题?或者该代码有问题吗?

0 个答案:

没有答案