808fi Object Module Formats

Version 4.0

represents contiquous reqions of memory whose contents are determined at translation-time. These reqions are called LOGICAL

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

Page 10
Image 10
Intel 121748-001 manual Segment Addressing