The assembly language le contains the actual source code for the statements in your unit, and the necessary memory allocations for any variables you use in your unit. This le is converted by the assembler to an object le (with extension .o) which can then be linked to other units and your program, to form an executable.
By default, the assembly le is removed after it has been compiled. Only in the case of the -s command-line option, the assembly le will be left on disk, so the assembler can be called later. You can disable the erasing of the assembler le with the -a switch.
The unit le contains all the information the compiler needs to use the unit:
The detailed contents and structure of this le are described in the rst appendix. You can examine a unit description le using the ppudump program, which shows the contents of the le.
If you want to distribute a unit without source code, you must provide both the unit description le and the object le.
You can also provide a C header le to go with the object le. In that case, your unit can be used by someone who wishes to write his programs in C. However, you must make this header le yourself since the Free Pascal compiler doesn't make one for you.