C++中指向内联__asm块的指针

4

我一直在尝试使用VS2010中的__asm代码块,但是我无法找到更好的方法来获取汇编块的起始指针。

我知道的唯一方法是声明一个void函数。但是问题在于这个void函数会有自己的汇编代码块,出现在我的汇编块之前和之后,我需要通过获取函数的真实地址并添加偏移量来进行补偿。

例如:

c++

void myfunc(){
    __asm{
        nop
        nop
        nop
        ret
    }
}  

会导致类似于以下汇编代码的结果:
push ebp
mov ebp,esp
add esp,8
nop
nop
nop
retn
mov esp,ebp
pop ebp
retn

如果执行myfunc(),很可能会出现错误。

1个回答

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接