2
最近我向社区询问了两个偏移量差异Visual-C++ inline assembler difference of two offsets,并很快得到了答复,非常感谢。 现在我已经进入其他问题,这是更糟的。Visual-C++内联汇编程序编译不正确
我有一个像
..naked...
__asm{
...
mov eax, dword ptr [ebx + offset data1]
...
}
真正的问题的指示是,它被编译为
mov eax, [offset data1]
此线路上没有编译器警告(/墙模式),但代码改了又改很多 - 想象一下,它会抛出ebx +的一部分!默默。 它是一个编译器错误或功能?也许我必须指定一些额外的标志?
问题是与仅偏移,由于
mov eax, dword ptr [ebx + 0xconst]
正确编译。
是的,我能得到周围代码
mov eax, offset data1
add eax, ebx
mov eax, [eax]
但是有很多的代码进行再变。困扰我的是没有任何警告;