- 0
- 0
- 约6.6千字
- 约 37页
- 2023-04-26 发布于河北
- 举报
大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,结构力学,力学,流体力学,水力学,工程测量,工程经济学,工程
(b) 查找y的地址描述符以确定y的当前位置(或位置之一)y。若y当前的值既在寄存器又在内存中,则寄存器优先,即选择寄存器作为y。如果y的值还不在L中,产生一条指令LD L, y将y的拷贝放进L。 (c) 产生一条指令op L, z,其中z是z的当前位置,也是寄存器优先。修改x的地址描述符使得x在位置L中。若L是一个寄存器,则修改L的描述符使得它含有x的值。 (d) 若y和(或)z的当前值不再待用,出基本块后不再活跃,且也不在寄存器中,则修改寄存器描述符,使得在x := y op z执行之后,这些寄存器分别不再含有y和(或)z。 对于形如x := op y的一元运算,处理的方法是类似的。特别是对于x := y,如果y是一个寄存器,只需修改相应的寄存器和地址描述符,记录下x的值当前只能在持有y的值的寄存器中找到即可。若y的当前值不再待用且出基本块后不再活跃,则寄存器不再持有y的值。 ② 一旦处理完了基本块中的所有三地址码,将所有出基本块后是活跃的,且不在它们内存位置的名字通过ST指令存回内存。具体地,用寄存器描述符确定哪些名字留在寄存器中,用地址描述符确定名字是否不在它们的内存位置,用活跃信息确定名字是否需要存储。 表 6.5 三地址码与目标代码 6.4 本 章 小 结 目标代码生成是编译器的最后一个阶段,是编译器中唯一与目标机器特性相关的阶段,所需考虑的问题大部分是基于特定机器的,如机器的指令系统与寄存器等。本章以一个假想的机器指令系统为基础,简单介绍了目标代码生成所涉及的共性问题,如寄存器的分配原则、基本块与程序流图、基于基本块的简单代码生成等。要求了解以下内容: (1) 代码生成的相关问题:中间代码与目标代码的形式、指令系统的选择、代码的执行代价、寄存器的分配原则、计算次序的选择; (2) 基本块与程序流图:基本块的划分与程序流图的构造; (3) 目标代码生成器:待用信息与活跃信息、寄存器与内存地址的描述符、存储位置的选择即getreg函数、基于基本块的简单代码生成算法。 第6章 代 码 生 成 北京外国语大学《编译原理》 第6章 代 码 生 成 6.1 代码生成的相关问题 6.2 简单的计算机模型 6.3 简单的代码生成器 6.4 本章小结 6.1 代码生成的相关问题 1.中间代码形式 中间代码有多种形式,其中树与后缀式形式适用于解释器,而对于希望生成目标代码的编译器而言,中间代码多采用与一般机器指令格式相近的三地址码形式。 2.目标代码形式 目标代码的形式可以分为两大类:汇编语言和机器指令。而机器指令又可以根据需求的不同分为绝对机器代码和可再定位机器代码。绝对机器代码的优点是可以立即执行,一般应用于一类称为load-and-go形式的编译模式,即编译完成后立即执行,不形成磁盘形式的目标文件,这种形式特别适合于初学者学习语言的情况。可再定位机器代码的优点是目标代码可以被任意链接并装入内存的任意位置,是编译器最多采用的代码形式。 汇编语言作为一种中间输出形式,便于软件开发人员的测试;load-and-go提供给初学者使用;可再定位机器代码用于真正的软件开发。出于教学的目的,此处选择汇编语言作为目标代码。 3.寄存器的分配 由于寄存器的存取速度远远快于内存,一般情况下,总是希望尽可能多地使用寄存器,而寄存器的个数是有限的,因此,如何分配寄存器的使用,是目标代码生成时需要考虑的重要因素之一。 4.计算次序的选择 代码执行的次序不同,会使代码的运行效率有很大差别,在生成正确目标代码的前提下,优化安排计算次序和适当选择代码序列,也是代码生成需要考虑的重要因素之一。 6.2 简单的计算机模型 1.指令系统与寻址方式 计算机模型的寻址方式如表6.1所示。令X代表Ri或者M,则赋值号右边的(X)表示直接取X内容作为操作对象,((X))表示一层间接,即取X的内容作为地址。可以看出,此模型中的指令与三地址码十分相似。基本寻址方式有直接型、寄存器型和变址型,对应这三种寻址方式,均可以间接寻址。 表 6.1 计算机模型的指令系统与寻址方式 表6.1中op均表示二元运算;若为一元运算,则指令op Ri, M的意义为Ri := op (M),对应三地址码形式为x := op y。 2.特殊指令 除了上述的寻址方式和一般的运算指令之外,计算机模型的指令系统中还包括如表6.2所示的
您可能关注的文档
- 北京体育大学《组织行为学》课件-第2章个体心理与个体行为领导理论.pptx
- 北京体育大学《组织行为学》课件-第6章组织文化.pptx
- 北京外国语大学《编译原理》课件-第1章 引言.ppt
- 北京外国语大学《编译原理》课件-第3章 80x86微处理器.ppt
- 北京外国语大学《编译原理》课件-第4章 语法制导翻译生成中间代码.ppt
- 北京外国语大学《编译原理》课件-第5章 运行环境.ppt
- 北京外国语大学《大学语文》课件-第2章现代文阅读.pptx
- 北京外国语大学《大学语文》课件-第3章科普小品写作.pptx
- 北京外国语大学《大学语文》课件-第4章公文概述.pptx
- 北京外国语大学《大学语文》课件-第5章请示批复.pptx
原创力文档

文档评论(0)