如何在Netbeans 7.4中编写扩展的GCC内联程序集?

如何在Netbeans 7.4中编写扩展的GCC内联程序集?,c,C,我试图在Netbeans 7.4中编写一个示例GCC扩展内联汇编程序 编译器选项是 gcc -masm=intel -O2 -c -g -O2 -std=c89 -MMD -MP -MF build/Debug/Cygwin_4.x-windows/main.o.d -o build/Debug/Cygwin_4.x-Windows/main.o main.c 显示的错误是 main.c: In function ‘main’: main.c:27:19: error: expected

我试图在Netbeans 7.4中编写一个示例GCC扩展内联汇编程序

编译器选项是

gcc -masm=intel -O2 -c -g -O2 -std=c89 -MMD -MP -MF build/Debug/Cygwin_4.x-windows/main.o.d -o build/Debug/Cygwin_4.x-Windows/main.o main.c
显示的错误是

main.c: In function ‘main’:  
main.c:27:19: error: expected ‘)’ before ‘:’ token  
               : [out]"=r"( op )  
               ^
但代码在没有某些选项的情况下编译成功。我使用Cygwin(x86-x64)GCC工具链

代码是

int main()
{
    unsigned *data = calloc ( 4 , sizeof (int ) );
    unsigned sel , op;
    scanf ( "%u%u%u%u" , data , data + 1 , data + 2 , data + 3 );
    while ( scanf ( "%u" , &sel ) )
    {
        asm(  "mov rcx, %[sel];"\
              "and rcx, 3;"\
              "mov rbx, %[data];"\
              "mov %[out], [rbx+4*rcx]"
              : [out]"=r"( op )
              : [data]"p"( data ) , [sel]"r"( sel )
              : "rcx" , "rbx"
              );
    }
    printf ( "%u\n" , op );
    return (EXIT_SUCCESS );
}

有什么办法解决这个问题吗?

“但是代码似乎很完美。”我讨厌这种情况发生。不知怎的,我觉得你应该编辑你的问题