2011-06-02 78 views
0

我试图编译内联汇编(用-fasm块)这MSVC工作,但GCC给我表达式后的垃圾`(%ebp)+4'错误...为什么它不接受语法,我该如何解决这个问题?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: 
}; 

回答

3

您应将其更改为:

cmp dword ptr [_tmp + 4], 50 
+0

谢谢,伙计!这给了我'寻址模式太复杂,会消耗额外的注册'警告,但至少它编译:) – Ryan 2011-06-02 06:31:58