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 isnt 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.