目标代码

什么是目标代码

目标代码是指源代码经过编译程序产生的能被CPU直接识别的二进制代码。

目标代码的形式

目标代码生成是以中间代码作为输入,将其转换成特定机器的机器语言或汇编语言作为输出。在此以四元式序列作为它的加工对象,输出目标代码的形式有三种:具备绝对地址的机器语言程序,具备相对地址的机器码程序和汇编指令程序。

具备绝对地址的机器语言程序在存储空间中有固定的存储位置,一旦产生此种形式的目标代码之后,便可立即执行,因此这种形式最为迅速有效,但它并不灵活,不适合大型程序。

具备相对地址的机器语言程序由若干个目标模块组成,各个模块中都包含目标程序中的一部分代码,可将它们装人到存储空间的任何位置,然后由连接装配程序将它们连接在一起之后执行。显然,连接装配程序增加了开销,但这种形式有较大的灵活性,所以为许多编译程序所采用。

目标代码生成程序可以产生汇编语言形式的目标代码,这种形式在实现上要比前两种形式容易。当然,这种形式的目标代码还需经汇编后才能成为可执行代码。

目标代码的生成

目标代码生成是编译程序的最后一个工作阶段,其任务是把经优化处理之后的中间代码变换成特定机器上的机器语言程序或汇编语言程序,实现最终的翻译工作。由于目标语言依赖于硬件系统,因而如何充分利用现有的寄存器以节省访问内存的时间,合理地选择执行速度快的指令,生成尽可能短且有效的目标代码是这个阶段考虑的紧要问题。

如果代码生成程序以四元式形式的中间代码序列作为输入,在其生成目标代码时,可假定每个四元式中的运算符及运算对象的数据类型均已知道,所需的全部类型转换操作均已在中间代码中得到体现。此外,如果出现在程序中的全部符号名运行时所需的存储空间均已得到分配,它们所在的数据区编号及相对地址已分别填人符号表各相应登记项栏中。所以在四元式中,仅出现符号名在符号表中登记项的序号。

郑重声明:东方财富网发布此信息的目的在于传播更多信息,与本站立场无关。东方财富网不保证该信息(包含但不限于文字、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。

扫一扫下载APP

扫一扫下载APP
信息网络传播视听节目许可证:0908328号 经营证券期货业务许可证编号:913101046312860336 违法和不良信息举报:021-61278686 举报邮箱:jubao@eastmoney.com
沪ICP证:沪B2-20070217 网站备案号:沪ICP备05006054号-11 沪公网安备 31010402000120号 版权所有:东方财富网 意见与建议:4000300059/952500