版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目标代码生成器位置:目标代码格式:1,定位可以立即执行的机器语言代码2,浮动机器语言代码,需要装配连接才能再次执行;3、需要汇编语言目标代码、汇编和执行。第11章目标代码生成,目标代码必须有效:目标代码短充分利用寄存器以减少内存访问。11.1简单代码生成器,P312中的两个表提供模拟命令系统(类似程序集)。仅介绍一种简单的目标代码生成方法。1,将每个中间代码依次转换为相同数量的目标代码。2、考虑充分使用寄存器的基本块。也就是说,在主块内计算的变量值保留在寄存器中,直到寄存器用于其他用途或到达主块的出口。引用变量时,请使用可能的寄存器中的值。现有赋值语句示例:A:=(B C)*D E相应的中间代
2、码:t 1:=B C t 2:=t1 * D A 3360=t2e,上述中间代码可以翻译为ldr,b addr,ldd要省略ST R,T1,必须知道它不在T1牙齿基本块之外使用。为此,通过引入数据结构(例如“要使用的信息”、“寄存器说明数组”、“变量地址说明数组”)来记录所需的信息。1,要使用的信息,为: 1。在可能的寄存器中存储块中要参照的变量的值。2.尽快释放块中不再引用的变量占用的寄存器。引入:要使用的信息和活动信息(记录在符号表中)。使用信息:对活动变量记录下一次引用该变量的语句编号。对非活动变量记录“不可用”。活动信息:还将引用的变量记录为“活动”。不再引用的变量将记录为“非活动”。
3、激活信息和要使用的信息的配置算法:1,在符号表中,用“不可用”填充牙齿块中的每个变量。根据牙齿变量在出口后是否引用“活动”或“非活动”来填充。2、从出口到入口,在每个门i: A:=B OP C执行:(1)门I后添加A的待定信息和活动信息。(2) A的符号表位于“不可用”、“不活动”的中央。(3)在语句I后附加B、C的暂挂信息、活动信息。(4) B,C的符号表中有“等待使用I”、“活动Y”。主(1)(2)(3)(4)的顺序渡边杏反转。因为b,c可能是a。因此,每个变量的参考信息显示为符号表和每个语句的待处理信息。每个语句还必须记录每个变量的活动信息以及要使用的信息。(,),(,y),(,),(,
4、),(,),(4,y),(4,y),(4,y),(,),)T :=A-B U :=A-C V :=T U W :=V U和已知W在块后面活动时,算法可以获得:2、寄存器描述和地址描述。必须掌握寄存器才能合理分配。在寄存器中,设置地址说明数组AVALUE以最大限度地引用变量的值,并记录每个变量的存储位置(R或M)。Avaluea=Ri(或A)表示变量A的值位于寄存器Ri(或内存)中。3,代码生成算法,对基础块中的每个代码I3360 A :=B OP C运行:1,调用Getreg(I 3360 A :=B OP C),牙齿过程返回存储A值的寄存器R。2、检查AVALUEB和AVALUEC,确定b、
5、c的当前存储位置b、c。3,如果是BR,则创建LD R B OP R C或OP R C。如果B=R或C=R,请从AVALUEB或AVALUEC中删除R。4,AVALUEA=R,RVALUER=A 5,B,c在块中不再引用,在块后面不再处于活动状态,当前值在中间RK中,从RVALUERK中删除B,c,从AVALUEB中删除B,c,2、如果没有符合上述条件的寄存器,则选择未分配的寄存器Ri以选择R=Ri。3、如果没有符合上述条件的寄存器,则选择指定的寄存器Ri以选择R=Ri,选择条件是(1) Ri的变量值已在内存中。(2) Ri的变量值离块中的下一个参照点最远。RVALUERi中的每个m(复制语句
6、中的Ri分配给多个变量)运行:(1)MA;或者,如果M=A和M=C:如果AVALUEM没有M牙齿,则为ST Ri,M;(2) avaluem=m. (3)从RVALUERi中删除m。示例:P316示例11.2可用寄存器为R0,R1 .(1)t :=A-B;GETREG进程第2条,T的寄存器分配为R0,因此LD R0、A SUB R0、B(2)u :=A-C;GETREG进程第2条,U的寄存器分配为R1,LD R1、A SUB R1、C(3)v :=T U;GETREG进程第1条,V的寄存器分配为R0,因此ADDR0,R1,(4)w 3360=V U;GETREG进程1,W的寄存器分配为R0,因此,创建:ADD R0,R1,对于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 奇妙的静电现象作文课件
- 数字化赋能:鞍山市政府集中采购管理系统的创新构建与实践
- 数字化赋能:瑞安市政府投资项目管理系统的构建与实践
- 数字化赋能:南京市青少年校园足球信息平台创新设计与实践
- 数字化赋能:中国农业发展银行柜员绩效量化考核系统的构建与实践
- 设备监理师设备工程监理基础及相关知识测测试题及答案
- 数字化浪潮下虚拟品牌社区的构建与进阶策略研究
- 数字化浪潮下NF公司开放式基金在线营销战略的创新与突破
- 雷雨教学课件
- 2025年前台销售礼仪试卷
- 中小学校长离任讲话发言稿
- 《做个诚实的孩子》课件
- 2022年绍兴市越城区事业单位考试《医学基础知识》试题
- 部编版小升初语文专项复习课件
- 风险监控指标汇总表
- 学校宿舍楼维修改造工程投标方案(完整技术标)
- 江苏师范大学成人继续教育网络课程《英语》单元测试及参考答案
- 小学科学教学经验交流课件
- 中考数学-隐藏的圆(图片版)课件
- 《风景园林专业概论》课程教学大纲
- 公司环保考核细则
评论
0/150
提交评论