Every time you run as it produces an output file, which is
your assembly language program translated into numbers. This file
is the object file. Its default name is
a.out
.
You can give it another name by using the -o option. Conventionally,
object file names end with .o. The default name is used for historical
reasons: older assemblers were capable of assembling self-contained programs
directly into a runnable program. (For some formats, this isn't currently
possible, but it can be done for the a.out
format.)
The object file is meant for input to the linker ld
. It contains
assembled program code, information to help ld
integrate
the assembled program into a runnable file, and (optionally) symbolic
information for the debugger.