译者序
前言
第1章 链接和加载
1.1 链接器和加载器做什么
1.2 从历史发展的角度分析地址绑定
1.3 链接与加载
1.3.1 两遍链接
1.3.2 目标代码库
1.3.3 重定位和代码修改
1.4 编译驱动器
1.5 链接:一个真实的例子
1.6 练习
第2章 体系结构相关问题
2.1 应用程序二进制接口
2.2 内存地址
2.3 地址构成规则
2.4 指令格式
2.5 过程调用和可寻址性
2.6 数据访问和指令引用
2.6.1 IBM 370
2.6.2 SPARC
2.6.3 Intel X86
2.7 分页和虚拟内存
2.7.1 程序的地址空间
2.7.2 文件映射
2.7.3 共享库和程序
2.7.4 位置无关代码
2.8 Intel 386分段
2.9 嵌入式体系结构
2.9.1 怪异的地址空间
2.9.2 非统一内存
2.9.3 内存对齐
2.10 练习
第3章 目标文件
3.1 目标文件中有什么
3.2 空目标文件格式:MS-DOS的.COM文件
3.3 代码分段:UNIX的a.out文件
3.3.1 a.out文件头
3.3.2 与虚拟内存的交互
3.4 重定位:MS-DOS的EXE文件
3.5 符号和重定位
3.6 可重定位的a.out格式
3.6.1 重定位项
3.6.2 符号和字符串
3.6.3 a.out格式小结
3.7 UNIX ELF格式
3.7.1 可重定位文件
3.7.2 ELF可执行文件
3.7.3 ELF格式小结
3.8 IBM360目标文件格式
3.8.1 ESD记录
3.8.2 TXT记录
3.8.3 RLD记录
3.8.4 END记录
3.8.5 小结
3.9 微软的可移植可执行文件格式
……
第4章 存储空间管理
第5章 符号管理
第6章 库
第7章 重定位
第8章 加载和覆盖
第9章 共享库
第10章 动态链接和加载
第11章 高级技术
参考文献
展开