相关疑难解决方法(0)

你如何在gcc中从C/C++源获得汇编程序输出?

怎么做到这一点?

如果我想分析如何编译某些内容,我将如何获得发出的汇编代码?

c c++ debugging assembly gcc

340
推荐指数
14
解决办法
31万
查看次数

为什么添加汇编注释导致生成的代码发生如此根本的变化?

所以,我有这个代码:

constexpr unsigned N = 1000;
void f1(char* sum, char* a, char* b) {
    for(int i = 0; i < N; ++i) {
        sum[i] = a[i] + b[i];
    }
}

void f2(char* sum, char* a, char* b) {
    char* end = sum + N;
    while(sum != end) {
        *sum++ = *a++ + *b++;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想看看GCC 4.7.2会产生的代码.所以我跑了g++ -march=native -O3 -masm=intel -S a.c++ -std=c++11并获得了以下输出:

        .file   "a.c++"
        .intel_syntax noprefix
        .text
        .p2align 4,,15
        .globl  _Z2f1PcS_S_
        .type   _Z2f1PcS_S_, @function
_Z2f1PcS_S_:
.LFB0:
        .cfi_startproc …
Run Code Online (Sandbox Code Playgroud)

c++ optimization assembly gcc

80
推荐指数
2
解决办法
6428
查看次数

标签 统计

assembly ×2

c++ ×2

gcc ×2

c ×1

debugging ×1

optimization ×1