[an error occurred while processing this directive]
Node:Assembly output,
Next:movedata.h,
Previous:C++ exceptions,
Up:Compiling
Q: How can I peek at the assembly code generated by GCC?
Q: How can I create a file where I can see the C code and its
assembly translation together?
A: Use the -S
(note: capital S) switch to GCC, and it
will emit the assembly code to a file with a .s
extension. For
example, the following command:
gcc -O2 -S -c foo.c
will leave the generated assembly code on the file foo.s
.
If you want to see the C code together with the assembly it was converted to, use a command line like this:
gcc -c -g -Wa,-a,-ad [other GCC options] foo.c > foo.lst
which will output the combined C/assembly listing to the file
foo.lst
.
If you need to both get the assembly code and to compile/link the
program, you can either give the -save-temps
option to GCC (which
will leave all the temporary files including the .s
file in the
current directory), or use the -Wa,-aln=foo.s
option which
instructs the assembler to output the assembly translation of the C code
(together with the hex machine code and some additional info) to the
file named after the =
.