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