我正试图编译在MSVC中工作的内联程序集(带有-fasm块),但GCC在表达式错误后给了我垃圾`(%ebp)+4'。。。为什么它不接受语法,我应该如何解决这个问题?
uint64_t _tmp = 100;
_asm
{
//_tmp value may be changed
//...
cmp dword ptr _tmp, 100 // Ok
jnae temp
cmp dword ptr _tmp + 4, 50 // It seems GCC doesn't want to accept _tmp + 4
jnae temp
//...
temp:
};
您应该将其更改为:
cmp dword ptr [_tmp + 4], 50