When you compile a program, the compiler produces again 2 files :
The assembly language file is converted to an object file by the assembler, and then linked together with the rest of the units and a program header, to form your final program.
The program header file is a small assembly program which provides the entry point for the program. This is where the execution of your program starts, so it depends on the operating system, because operating systems pass parameters to executables in wildly different ways.
It's name is prt0.o, and the source file resides in prt0.s or some variant of this name. It usually resided where the system unit source for your system resides. It's main function is to save the environment and command-line arguments, set up the stack. Then it calls the main program.