目标程序生成.doc
《目标程序生成.doc》由会员分享,可在线阅读,更多相关《目标程序生成.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 ,ac1注:
3、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对应的目标代码。(2) 遇到跳
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 目标 程序 生成
限制150内