GCC 内联程序集错误:表达式后的垃圾"(%ebp)+4"



我正试图编译在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

最新更新