自己动手构造编译系统:编译、汇编与链接

“自己动手系列” 自己动手构造编译系统 编译、汇编与链接 范志东  张琼声  著 图书在版编目(CIP)数据 自己动手构造编译系统:编译、汇编与链接 / 范志东,张琼声著. —北京:机械工业出版社,2016.7 (自己动手系列) ISBN 978-7-111-54355-8 I....

自己动手构造编译系统:编译、汇编与链接导读

Preface前  言 本书适合谁读 本书是一本描述编译系统实现的书籍。这里使用“编译系统”一词,主要是为了与市面上描述编译器实现的书籍进行区分。本书描述的编译系统不仅包含编译器的实现,还包括汇编器、链接器的实现,以及机器指令与可执行文件格式的知识。因此,本书使用“编译系统”一词作为编译器、汇编器和...

自己动手构造编译系统:编译、汇编与链接2.5.3 重定位 

2.5.3  重定位              重定位从本质上来说就是地址修正。由于目标文件在链接之前不能获取自己所使用符号的虚拟地址信息,因此导致依赖于这些符号的数据定义或者指令信息缺失。汇编器在生成目标文件的时候就记...

自己动手构造编译系统:编译、汇编与链接2.6 本章小结

2.6  本章小结         本章介绍了编译系统的设计,并按照编译、汇编和链接的顺序阐述了它们的内部实现。同时,也介绍了x86指令和ELF文件结构等与操作系统及硬件相关的知识。   通过以上的描述,可以了解高级语言如何被一步步转化为汇编语言,以及词法分析...

自己动手构造编译系统:编译、汇编与链接2.5.1 地址空间分配

2.5.1  地址空间分配      在汇编器生成的目标文件内,是无法确定数据段和代码段的虚拟地址的,因此将它们的段地址都设置为0。链接器是这些代码和数据加载到内存执行之前的最后一道处理,因此要为它们分配段的基址。   链接器按照目标文件的输入顺序扫描文件信息,从每个文件的段表中...

自己动手构造编译系统:编译、汇编与链接2.4.3 指令生成

2.4.3  指令生成               2.2节介绍了x86指令的基本结构。同样,在汇编器语法分析时,需要根据指令的语法模块收集这些指令的结构信息。比如操作码、ModR/M字段、SIB字段、偏移量、立即数,然...

自己动手构造编译系统:编译、汇编与链接2.4.1 汇编词法、语法分析

2.4.1  汇编词法、语法分析         汇编语言有独立的词法记号,对于汇编词法的分析,只需要构造相应的词法有限自动机就可以了。举一个简单的例子: mov eax,[ebp-8]   该指令有8个词法记号,它们分别是:'mov''eax'逗号'[''e...

自己动手构造编译系统:编译、汇编与链接2.4 汇编程序的设计

2.4  汇编程序的设计       通过对汇编器已有的了解,可以发现汇编器和编译器的实现非常相似。编译器是将高级语言翻译为汇编 语言的转换程序,汇编器则是将汇编语言翻译为目标机器二进制代码的转换程序。汇编器实际就是汇编语 的“编译器”,虽然汇编语言并非高级语言。   ...

自己动手构造编译系统:编译、汇编与链接2.3 ELF文件格式

2.3  ELF文件格式          ELF文件格式描述了Linux下可执行文件、可重定位目标文件、共享目标文件、核心转储文件的存储格式。本书设计的编译系统只关心可执行文件和可重定位目标文件的格式,如果要设计动态链接器的话,则还需要了解共享目标文件的内容...

自己动手构造编译系统:编译、汇编与链接2.2 x86指令格式

2.2  x86指令格式          编译系统的汇编器需要把编译器生成的汇编语言程序转化为x86格式的二进制机器指令序列,然后将这些二进制信息存储为ELF格式的目标文件。因此需要先了解二进制机器指令的基本结构。   如图2-10所示,在x86的指令结构中...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。