2022年目标程序生成.doc
《2022年目标程序生成.doc》由会员分享,可在线阅读,更多相关《2022年目标程序生成.doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 实验八 目的程序生成【实验目的】 理解目的代码生成阶段在编译处理过程中的功能和作用 理解常用的三种目的代码方式及其优缺点 理解虚拟机及其指令系统 深化理解并掌握有中间代码向目的代码转换的过程和原理 【实验学时】 4学时 【实验要求】 纯熟掌握虚拟机的指令系统 理解并掌握指令选择的方法 理解多存放器分配的原则和方法 纯熟掌握根本语句从四元式中间代码方式到目的代码的翻译原理和方法 独立完成目的代码生成程序【实验原理】一、四元式到目的代码的转换分析1取ARG构造值对应的目的代码四元式中间代码的操作分量和目的量以 ARG构造给出,在生成目的代码的过程中,首先要依照ARG构造获得对应的值或者地址,存入
2、累加存放器ac中,再生成运算的目的代码。从ARG构造取值的过程如下表所示: ARG构造品种 取值对应的目的代码常量c LDC,ac,c,0 标号lab LDC,ac,lab,0 源变量或临时变量v直截了当变量取v的绝对地址到ac; (表-2)LD,ac,0,ac间接变量取v的绝对地址到ac; (表-2)LD,ac1,0,ac LD,ac,0,ac1取ARG构造值对应的目的代码示意表 2取变量的绝对地址对应的目的代码如下表所示: 变量品种 取绝对地址对应的目的代码 源变量v LDA,ac,level,displayoff ADD,ac,ac,sp LDC,ac1,off,0 ADD,ac,ac
3、,ac1注:level为变量v所在的层数,off为变量v的偏移。 临时变量t LDC,ac1,off,0 ADD,ac,sp,ac1注:off为临时变量t的偏移量 取变量的绝对地址对应的目的代码示意表二、关键咨询题的处理1 标号和跳转的处理:处理标号和跳转,需要用到标号地址表;表的构造为: 中间代码标号 目的代码地址 下一项 Labeldestnumnext(1) 遇到标号定位时:设标号为L,应转向的目的代码为p1,分为两种情况: 在标号地址表中没有L项,则填写表项(L,p1,NULL),并链入表尾; 在标号地址表中有L项(L,addr,Next),则依照当前pc,回填addr对应的目的代码。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 目标 程序 生成
限制150内