【问题标题】:GCC inline assembly error: junk `(%ebp)+4' after expressionGCC 内联汇编错误:表达式后出现垃圾 `(%ebp)+4'
【发布时间】:2011-06-02 06:08:20
【问题描述】:

我正在尝试编译在 MSVC 中工作的内联程序集(使用 -fasm-blocks),但 GCC 给了我 junk `(%ebp)+4' after expression 错误...为什么它不接受语法,我应该如何解决这个问题?

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:
};

【问题讨论】:

    标签: c++ visual-c++ gcc assembly inline-assembly


    【解决方案1】:

    你应该把它改成:

    cmp dword ptr [_tmp + 4], 50
    

    【讨论】:

    • 谢谢,伙计!这给了我“寻址模式太复杂,将消耗额外的寄存器”警告,但至少它编译:)
    猜你喜欢
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多