Characteristics of Compiled Programs
The Object Code Module The compiler produces position-independent, reentrant 6809 code in a standard OS-9 memory module format. The format of an executable program module is shown below. Detailed descriptions of each section of the module are given on following pages. Module Offset +-------------------------------+ ! ! ! Module Header ! ! ! !-------------------------------! ! Execution Offset ! !-------------------------------! ! Permanent Storage Size ! !-------------------------------! ! Data-text Reference Count ! v v : Data-text Reference Offsets : ^ ^
Module Header This is a standard module header with the type/language byte set to $11 (Program + 6809 Object Code), and the attribute/revision byte set to $81 (Reentrant + 1).
Execution Offset
Storage Size
Module Name
Information
Executable Code
String Literals
Initializing Data and its Size
Data References
Memory Management The C compiler and its support programs have default conditions such that the average programmer need not be concerned with details of memory management. However, there are situations where advanced programmers may wish to tailor the storage allocation of a program for special situations. The following information explains in detail how a C program's data area is allocated and used.
Typical C Program Memory Map
Compile Time Memory Allocation