![](/images/new-backgrounds/1264707/26470719x1.webp)
808fi Object Module Formats | Version 4.0 |
represents contiquous reqions of memory whose contents are determined at
SEGMENTS (LSEG's). A module must contain information that defines the attributes of each LSEG. The SEG~ENT DEFINITION RECORD (SEGDEF) is the vehicle by which all LSEG information (name, length, memory
alignment, etc.) is maintained. The LSEG information is required when multiple LSEG's are combined and when seqment addressability (GROUPING, see below) is est~blished. The SEGDEF records are required to follow the first header record (THEADR, or LHEADR, or RHEAOR) •
SEGMENT ADDRESSING
The 8086 addressing mechanism provides seqment base registers
from which a 64K byte reqion of memory, called a FRAME, may be
addressed. There is one code seqment base reqister (CS), two data segment base registers (OS, ES), and one stack seqment base reqister (SS) •
The possible number of LSEG' s that may make up a memory imaqe
far exceeds the number of available base registers. Thus, base reqisters may require frequent loading. This would be the case in a modular program with many small data and/or code LSEG's.
Hence the motivation to collect LSEG's toqether to form one
addressable unit that can be contained within a memory frame. The name for this addressable unit is a GROUP and has been defined earlier in the DEFINITION OF TERMS.
To allow addressa~ility of objects within a GROUP to be established, each GROUP must be explicitly defined in the module. The GROUP DEFINITION RECORD (GRPDEF) provides a list of constituent segments either by segment name or by segment attribute such as ~the segment defininq symbol FOO" or "the seqments with class name ROft1".
The GRPDEF records within a module must follow all SEGDEF records asGRPDEF records may reference SEGDEF records in defininq a
GROUP. The GRPDEF records must also precede all other records but
header records as some R&L products must process them first . The explicit orderinq of records is aiven Inter.
SYMBOL,DEFINITIO~
Within a module thera may be six different types of symhol definition records. The necessity for these records is based on two
requirements: 1) references to externally defined symbols should be resolved by eauivalently defined symbols in another module
(linkinq) and 2) attributes of locally defined symbols and line numbers should be made availahle for debuqqinq purposes.
10