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]
但是有很多的代碼進行再變。困擾我的是沒有任何警告;