How can I compile to assembly with gcc

前端 未结 3 1747
挽巷
挽巷 2020-12-29 02:08

How do I compile to assembly instead of an executable with gcc. I know there is an -S flag, but where do I use it in the makefile. For example, if I use fla

相关标签:
3条回答
  • 2020-12-29 02:44

    I suggest also using -fverbose-asm because then the generated assembler has some generated comments which "explains" the code. For example:

    gcc -S -fverbose-asm -O2 foo.c
    

    would generate in foo.s (with some comments) the assembler code produced by compiling foo.c

    And to understand what the GCC optimizations are doing one could even try -fdump-tree-all (but this produces hundreds of files!).

    0 讨论(0)
  • 2020-12-29 02:45

    You can ask GCC to produce the assembly file, instead of an object file (or an executable).

    For instance:

    gcc -Wall -c test.c
    

    Will produce an object file from test.c (test.o).

    gcc -Wall -o test test.c
    

    Will produce an executable file named 'test' from test.c

    gcc -Wall -S test.c
    

    Will produce an assembly file from test.c (test.s)

    0 讨论(0)
  • 2020-12-29 02:49

    Put it pretty much anywhere.

    gcc -O3 -S -o output.asm ...
    

    will store the generated assemby in output.asm.

    0 讨论(0)
提交回复
热议问题