不高兴你咬我 2017-04-27 07:31 采纳率: 100%
浏览 1047
已采纳

求解,gcc编译C++代码为intel样式错误

c++代码

 int g_arr[10];

 int main()
 {
  g_arr[0] = 1;
  g_arr[1] = 2;
    g_arr[2] = 3;
 }

使用g++编译为intel样式的汇编代码
g++ -S -o main.s main.cpp -masm=intel
然后汇编为目标文件时报错
g++ -c -o main.o main.s

图片说明
查看编译后的汇编代码确实有问题,不知道是不是编译参数写错了还是gcc使用intel样式汇编时本身就有bug

  • 写回答

2条回答 默认 最新

  • 普通网友 2017-04-27 07:43
    关注

    我试过了,正常编译没问题 g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)

     int g_arr[10];
    
    int main()
    {
            g_arr[0] = 1;
            g_arr[1] = 2;
            g_arr[2] = 3;
            return 0;
    }
    
    

    main.s

        .file   "main.c"
        .intel_syntax noprefix
    .globl g_arr
        .bss
        .align 32
        .type   g_arr, @object
        .size   g_arr, 40
    g_arr:
        .zero   40
        .text
    .globl main
        .type   main, @function
    main:
    .LFB0:
        .cfi_startproc
        .cfi_personality 0x0,__gxx_personality_v0
        push    ebp
        .cfi_def_cfa_offset 8
        .cfi_offset 5, -8
        mov ebp, esp
        .cfi_def_cfa_register 5
        mov DWORD PTR g_arr, 1
        mov DWORD PTR g_arr+4, 2
        mov DWORD PTR g_arr+8, 3
        mov eax, 0
        pop ebp
        .cfi_restore 5
        .cfi_def_cfa 4, 4
        ret
        .cfi_endproc
    .LFE0:
        .size   main, .-main
        .ident  "GCC: (GNU) 4.4.7 20120313 (Red Hat 4.4.7-18)"
        .section    .note.GNU-stack,"",@progbits
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备