我一直在尝试使用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(),很可能会出现错误。