Chapter 3 Loaders and Linkers. Purpose and Function. Places object program in memory Linking Combines 2 or more obj programs Relocation Allows loading at different locations Linkage Editor Provides linking without loading. Kinds of Loaders. Absolute Single pass
^ ^ ^
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
FFC 111111111100 all 10 words need modification
T 00001E 15 E00 0C0036 481061 080033 4C0000 454F46 000003 000000
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
E00 111000000000 instructions 0,1,2 need load addresses
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
^ ^ ^ ^ ^ ^ ^
The F1 fouls up alignment, thus a new text record has to be started.
Fig2.15 is COPY using RDREC and WRREC. Suppose new
routines READ and WRITE are to replace them, but we want to
test READ and WRITE first. Without assembling we could give the
DELETE RDREC, WRREC
CHANGE RDREC, READ
CHANGE WRREC, WRITE
Now we have the new routines for execution without removing
and reassembling the source code.
NOCALL STDDEV, PLOT, CORREL
Output from the loader can vary
DELETE PROJECT (delete from existing planner)
INCLUDE PROJECT(NEWLIB) (include new version)
Example: suppose 100 programs use I/O routes, if all external references were resolved, there would be 100 copies of the library. Using commands to the linkage editor like those above, the user could specify not to include the library. A linking loader could be used to include the routines at run time. There would be a little more overhead since two linking operations would be done, one for user external references by the linkage editor and one for libraries by the linking loader.