版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章目标代码生成目标代码
虚拟目标代码:虚拟机上的目标程序。在本地机器上具备虚拟机的解释器。
实际目标代码:实际机器上的指令序列绝对地址机器代码:可重定位的机器代码:汇编代码:三种硬件地址模式指令格式:OpR#C(立即-----寄存器)OpR2d(R1)(存储器-----寄存器)OpR1R2(寄存器-----寄存器)几个常见指令的含义:
LDRSource 从Source读出送入ROpRSource SourceopR结果送入RSTTargetR R的内容送入Target.表达式和赋值语句的翻译
形如(Op,A,B,T):LDRA;OpRB
形如(ASSIG,A,B):LDRA;STBR
例:Z:=X*(a+b)*Y*(a+b)
(+,a,b,t1)LDRa;AddRb(*,X,t1,t2)STRt1;MultRX(*,t2,Y,t3)MultRY(*,t3,t1,t4)MultRt1输入/输出语句的翻译输入语句:(READ,A)
INR STA,R输出语句:(WRITE,A) LDR,A OUTR条件语句四元式的翻译(THEN,t,_,_)生成的目标代码为: LDR,t JUMP0R,__(ELSE,_,_,_)生成的目标代码为: JMP__ 同时回填JUMP0指令的目的地址(ENDIF,_,_,_)不产生目标代码,只负责完成ELSE子句的地址回填工作。循环语句的翻译(WHILE,_,_,_)不产生目标代码,只用来标记while语句的入口地址。(DO,t,_,_)产生的目标代码为: LDR,t JUMP0R,_(ENDWHILE,_,_,_)产生的目标代码: JMPA
回填前面DO四元式所产生的半条指令标号和goto语句的翻译(LABEL,_,_,L)不产生目标代码,只向L所分配到的存储单元写入转向地址。
(GOTO,_,_,L)生成的目标代码为 JMP*L过程、函数说明的翻译(ENTRY,Q,—,—)不产生目标代码,只需将当前指令地址A填入Q的相应语义信息中。(ENDPROC,—,—,—)或(ENDFUNC,—,—,—)
1.将本层活动记录中保存的机器状态恢复过来,对应一组读指令。 2.删除本层活动记录,使动态外层的活动记录成为当前活动记录; 3.按1(top)中记载的返回地址返回。 目标代码为: STtop,sp LDsp,0(top)
//作废当前活动记录 JMP1(top)
//按返回地址返回过程、函数调用语句的翻译值参情形(ValACT,t,Offset,size)
a.若t为间接变量,则生成的目标代码为: LDR,*t SToffset(sp),R b.若t为直接变量,则生成的目标代码为:
LDR,t SToffset(sp),R c.若t为数组,则生成的目标代码为:
moveBt,offset(sp),size
变参情形(VarACT,t,Offset,size) a.若t为直接变量,,则生成的目标代码为: LEAR,t SToffset(sp),R b.若t为间接变量,,则生成的目标代码为: LDR,t SToffset(sp),R
过程、函数调用语句的翻译过程、函数调用语句(CALL,f,—,t)
1.生成填写变量访问环境指令 2.把机器状态(寄存器内容)保存到活动记录的机器状态区中,一般应生成一组存的指令 3.要填写管理信息.首先填写过程层数.从过程f的语义信息中取其层数,填入到2(top)中,生成指令为 LDR,sem[f].level ST2(top),R过程、函数调用语句的翻译 4.填写动态链指针 ST0(top),sp 5.填写返回地址 LDR,A+5 //A ST1(top),R//A+1 6.生成过程活动记录 STsp,top //A+2 STtop,top+sem[f].size//A+3 7.生成转向过程f入口的指令 JMP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省武汉市2024-2025学年高二上学期期末考试英语试题(解析版)
- 小学二年级下册语文应用知识点测试试卷
- 浙江省杭州市2025-2026学年高一上学期期末学业水平测试英语试题(解析版)
- 2026年初二各科测试题及答案
- 2026年中考语文语法测试题及答案
- 2026年几何智力测试题及答案
- 2026年第一人民医院护理笔试题及答案
- 2026年村党支记测试题及答案
- 2026年平度技校测试题及答案
- 2026年地质作用测试题及答案
- 柴油发电机操作与维护手册
- 贵州国企招聘2025贵州磷化(集团)有限责任公司秋季社会招聘笔试历年备考题库附带答案详解试卷2套
- 光伏组件热斑效应课件
- 2025年浙能集团甘肃有限公司新能源项目招聘22人笔试历年参考题库附带答案详解
- 幼儿园教师资格综合素质模块一
- 基于ARMA模型猪肉价格预测实证分析
- DBJT 13-508-2025 城市道路项目安全性评价标准
- 2025版CSCO尿路上皮癌诊疗指南
- 2025广东广州市黄埔区文冲街招聘垃圾分类督导员和垃圾分类专管员3人备考练习题库及答案解析
- DB3711∕T 118-2022 毛竹栽培技术规程
- 激光3D打印人形机器人关节结构拓扑优化研究
评论
0/150
提交评论