assembly listings
Nick Clifton
nickc@redhat.com
Mon Jan 17 16:53:00 GMT 2011
Hi Ali,
> I have created an assembly file by gcc named prog1.s. Then:
> as -ah ./prog1.s
> Why high level listing can not be seen?
Because you compiled prog1.s without debugging enabled, and you are
creating a listing without including any assembler output For example:
% gcc -S hello.c
% as -ahl=hello.list hello.s -o hello.o
% grep printf hello.list
14 0010 E8FCFFFF call printf
% gcc -S -g hello.c
% as -ahl=hello.list hello.s -o hello.o
% grep printf hello.list
1:hello.c **** extern int printf (const char *, ...);
2:hello.c **** int main (void) { return printf ("hello
world\n"); }
31 0010 E8FCFFFF call printf
You need to pass -g to gcc in order to include debugging info in the
assembler outout file. The assembler needs this in order to be able to
locate the high level source file(s) associated with the input assembly
source file.
You need to include the 'l' option in the -a assembler option in order
to generate a listing output. (The 'h' option is a qualifier that is
applied to the 'l' option. If 'h' is present but 'l' is not then you do
not get any output).
Cheers
Nick
More information about the Binutils
mailing list