Linkers and Loaders
This is the web site for Linkers and Loaders by
John R. Levine, published
by Morgan-Kauffman in October 1999, ISBN
It contains errata as well as code and data for the exercises.
The source code
The source code and data for the project exercises are partially
Join the announcement mailing list on the
beta site, to get messages
when updates to the code are released.
Reading or buying the book
You can read unedited draft chapters at the
They are similar to the published book, but without all of the improvements and
corrections made in the editorial process, and with my hand-drawn sketches instead
of the real figures.
You can order the book from the usual on-line bookstores:
If you'd like an autographed copy, send me a note at the
Page 26: second paragraph, delete "using the table pointer register as a base register:
Page 33: last paragraph, first line, delete "addresses"
Page 98: the table of segment locations is incorrect. Corrected version:
|main||1000 - 2016||5000 - 531f||6a4c - 6a9b|
|calif||2018 - 2937||5320 - 5537||6a9c - 6b9b|
|mass||2938 - 2f4c||5538 - 5837||6b9c - 73db|
|newyork||2f50 - 42df||5838 - 6a4a||73dc - 87db|
Page 104: third paragraph, sixth line, "assignment" should be "alignment"
Page 146: project, fourth line, "exported files" should be "exported symbols"
Page 147: project 6.3, first line, "directory" should be "file"
Page 170: first line, "the data" should be "the data address"
Page 180: second paragraph, last line, "decimals" should be "decimal"
Page 181: Figure 8.7, "3000 andy" should be "5000 andy"
Page 215: second line, "offset The" should be "offset, the"
Page 216: fourth line, replace sentence starting "This is a" with "The linker uses the symbol size to determine how much data to copy."
Page 226: Exercise 10.2, fourth line, "calls" should be "names"
Page 241: last paragraph, second line "into logically" should be "into a logically"
PO Box 727
Trumansburg, N.Y. 14886