Classes; Groups - Intel iAPX 86 User Manual

Table of Contents

Advertisement

iAPX 86,88 Family Utilities
One variation to the sequential locating of segments is how the MEMORY segment
is located. When the first segment with the memory attribute is encountered, it is
placed last in the list of segments. This means that after all other segments are
located, the MEMORY segment will be assigned the highest address in the output
module.
NOTE
The MEMORY segment may not get located at the top of the module if its
name or class name appears in any LOC86 control (other than SEGSIZE) or
it has the absolute attribute.
Classes
A class is a collection of segments. When segments are defined in assembly
language, a class name can be specified. The segments generated by such translators
as PL/M-86 are generated with predefined class names. Any number of segments
can be given the same class name. Class names can extend beyond module bound-
aries; the same class name can be used in different modules that are to be combined.
The primary purpose of classes is to collect together (in an arbitrary order) segments
that share a common attribute and to manipulate this collection at locate-time by
specifying only the class name.
All segments with the same class name are located together in the memory address
space of the output module. (You can override class collection by specifying the
location of segments with the LOC86 ORDER control or LOC86 ADDRESSES
control.)
Classes give you a second means of collecting like segments in the output module.
The first is giving segments the same name. If you are developing several modules
that are to be combined, you may want to give the segment containing executable
code the name CODE in each module. If there are several differently named
segments within a module that contain executable code, you may want to give these
segments the class name of CODE that causes them to be located together but not
combined. (The same name can be used for segments and classes.)
Groups
A group is also a collection of segments. Groups define addressing range limitations
in 8086 object modules. A group specifies a collection of segments that must be
located within a 64K byte range. This means that the entire group of segments can be
addressed with offsets from a single segment register. Or, to put it another way, the
segment register need not be changed when addressing any segment in a group. This
permits efficient addressing within the module.
Group addressing always begins at an address that is a multiple of 16 (i.e., a
paragraph boundary). R&L does not manipulate segments of a group to make sure
they fall within a 64K byte range. However, if they do not fit in the range, a warning
message is issued.
The segments included in a group do not have to be contiguous in the output
module. The only requirement is that all the segments defined in the group must
totally fall within 64K bytes of the beginning address of the group.
In
trod uction
1-9

Advertisement

Table of Contents
loading

This manual is also suitable for:

Iapx 88

Table of Contents