Intel iAPX 86 User Manual page 94

Table of Contents

Advertisement

iAPX 86,88 Family Utilities
After all ORDER controls, if any, have been processed, LOC86 adds the relocatable
segments that remain to the end of the list. If the first segment not previously used
has a class name, then all other segments with the same class name are added to the
list. After all segments of the class have been added to the list, then the next segment
is added to the list.
This process continues until all segments have been added to the ordered list.
NOTE
Memory segments do not adhere to this process -
a memory segment is
always located at the top of memory, if possible. If an input module con-
tains more than one memory segment, only the first is placed at the top of
memory; the other segments are treated as any other relocatable segment.
Assigning Addresses to Relocatalble Segments
Once LOC86 completes the ordered list of relocatable segments, it begins assigning
addresses. LOC86 will never assign addresses that conflict with the location of
absolute segments or the RESERVE control or between OOH and 200H, since that
area is reserved for interrupt routines.
Starting at location 200H, LOC86 scans free memory to find an area in which the
first segment will fit. When LOC86 finds a suitable address, it assigns it to the seg-
ment and removes that area from free memory. LOC86 then scans free memory for
an area that will fit the next segment in the ordered list. LOC86 begins scanning at
the end of the previous segment.
IF LOC86 reaches the end of memory and all of the relocatable moqules have not
been located, it makes an additional scan through free memory. The scanning pro-
cess continues until all modules have been located.
LOC86's Algorithm for Locating Modules
Containing Overlays
LOC86 locates programs with overlays in much the same way as it handles programs
that do not contain overlays. However, there are some differences.
1.
Segments contained in the root and each overlay are ordered separately.
2.
Segments that are common to both th(;! root and overlays (e.g.,STACK and
MEMORY) are put at the end of the list of relocatable segments.
3.
Segments in the root are located at the lowest available addresses in memory.
4.
Segments contained in the overlays are located at the first available address
above the root.
5.
Segments common to the root and overlays are located immediately above the
largest overlay in the file.
Figure 5-4 illustrates how LOC86 treats two PL/M-86 programs that use overlays.
Figure 5-4a shows how segments are located when the modules are compiled with the
LARGE model. Figure 5-4b shows how segments are located when the modules are
compiled with the SMALL model of segmentation.
LOC86
5-25

Advertisement

Table of Contents
loading

This manual is also suitable for:

Iapx 88

Table of Contents