不高兴你咬我 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条)

报告相同问题?

悬赏问题

  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)