compiler8 - 1 编译原理 第八章 代码生成...

Info icon This preview shows pages 1–8. Sign up to view the full content.

View Full Document Right Arrow Icon
1 编译原理 第八章 代码生成 上海交通大学 张冬茉 Email:[email protected] 2015 3
Image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 本章目的 词法分析、语法分析、语法制导翻译及中间代码 生成是编译的前端,而目标代码的生成是编译 的后端,编译优化是可选部件。代码生成的任 务是在编译前端生成的中间代码的基础上,生 成等价有效的目标代码,这也是一种程序变换 ,变换的结果是产生目标代码。等价是任一种 程序变换的基本要求,因此讨论将集中在目标 代码和如何产生有效的目标代码上。所谓有效 ,当然是指目标代码占用的空间要省,运行的 时间要短,这涉及充分利用寄存器和生成优化 的代码序列的问题
Image of page 2
3 第八章 代码生成 §8.1 目标代码 一、代码生成器的输入与输出 输入必须含有两部分:一部分是前端生成的中间代 码,它是三地址表示的四元式。另一部分便是符号 表,这是由前端产生的,用以决定中间代码的数据 对象运行地址的所有信息都在符号表中存放着。 输出是目标代码,其形式可以是绝对机器语言、可 重定位机器语言或汇编语言的代码。
Image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
4 二、目标机器 目标机多种多样,要生成好的目标代码,必须熟悉目标 机,特别是指令系统的细节。作为一般讨论,我们不打 算讨论十分依赖于目标机器细节的内容,当然也不可能 生成完整的满意的代码。我们只讨论一般技术,只针对 一种抽象的目标机,它是简单的,作为各种目标机的子 集,它是公共的。 目标机具有几个通用寄存器,它们同时可作为变址器。
Image of page 4
5 指令形式为二地址形式: op 源,目的 其中 op 为操作码,源和目的作为两个操作对象都是数据 域,它们可以是内存地址,也可以是寄存器,或常数。 指令的地址模式可有: (1) 绝对地址型: op Ri, M (Ri)op(M) Ri (2) 寄存器型: op Ri, Rj (Ri)op(Rj) Ri (3) 变址型: op Ri, c(Rj) (Ri)op((Ri)+c) Ri (4) 间接型: op Ri, *Rj (Ri)op((Rj)) Ri op Ri, *M (Ri)op((M)) Ri op Ri, *c(Rj) (Ri)op(((Ri)+c)) Ri
Image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
6 其他操作指令的指令意义为: (1) MOV R i , M (Ri) M (2) MOV M, R i (M) R i (3) J X goto X (4) CMP A B A B 的存储内容进行比较 ,视 A<B A B ,或 A>B ,分别设 CJ 0 CJ 1 CJ 2 (5) J rop X. rop CJ ,状态一致时 goto X ,例如 rop < CJ 0 goto X
Image of page 6
7 §8.2 一个简单代码生成器 一、待用信息 定义 8.1 在基本块 B 中,变量 A i 点的值, j 点引用,并且 i j 的通路上没有 A 的其他定值和 引用,则 j i A 的下一个引用点,即待用信 息。 基本块内 i 处一个变量的活跃信息是指基本块出 口之后该变量是否还要被引用,而待用信息则是 指基本块内的下一引用点,这些是寄存器分配所 需的信息。因此在为基本块的每一语句生成目标
Image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 8
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern