版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、| 虚拟目标代码:虚拟目标代码:虚拟机上的目标程序。虚拟机上的目标程序。 在本地机器上具备虚拟机的解释器。在本地机器上具备虚拟机的解释器。| 实际目标代码:实际目标代码:实际机器上的指令序列实际机器上的指令序列 绝对地址机器代码:绝对地址机器代码: 可重定位的机器代码:可重定位的机器代码: 汇编代码:汇编代码:| 指令格式:指令格式: Op R #C Op R #C (立即立即-寄存器)寄存器) Op R2 d(R1) Op R2 d(R1) (存储器存储器-寄存器)寄存器) Op R1 R2 Op R1 R2 (寄存器寄存器-寄存器)寄存器)| 几个常见指令的含义几个常见指令的含义 : LD
2、 R Source LD R Source 从从Source Source 读出送入读出送入R R Op R Source Op R Source Source op RSource op R结果结果 送入送入R R ST Target R ST Target R R R的内容送入的内容送入Target.Target.| 形如(形如(OpOp,A A,B B,T T):):LD R ALD R A;Op R BOp R B| 形如形如( (ASSIG,A,B)ASSIG,A,B):LD R ALD R A;ST B RST B R| 例:例:Z:= XZ:= X* *(a+b)(a+b)* *
3、 Y Y* * (a+b) (a+b) ( (, ,a,b,t1)a,b,t1)LD R a; Add R bLD R a; Add R b( (* *, ,X,t1,t2)X,t1,t2)ST R t1; Mult R XST R t1; Mult R X( (* *, ,t2,Y,t3)t2,Y,t3)Mult R YMult R Y( (* *, ,t3,t1,t4)t3,t1,t4) Mult R t1Mult R t1l输入语句:(READ, A )IN R ST A , Rl输出语句:(WRITE,A )LD R , AOUT R l(THEN, t,_ , _THEN, t,_
4、, _)生成的目标代码为)生成的目标代码为:LD R , tJUMP0 R , _l(ELSE,_,_,_ELSE,_,_,_)生成的目标代码为)生成的目标代码为:JMP _ 同时回填JUMP0指令的目的地址l(ENDIF,_,_,_)不产生目标代码,只负责完成ELSE子句的地址回填工作 。l(WHILE,_,_,_WHILE,_,_,_)不产生目标代码,只用来标记不产生目标代码,只用来标记whilewhile语句的入口地址。语句的入口地址。l(DO , t ,_ ,_)产生的目标代码为:产生的目标代码为:LD R , tJUMP0 R , _l(ENDWHILE, _, _, _)产生的目标
5、代码:产生的目标代码:JMP A 回填前面回填前面DO四元式所产生的半条指令四元式所产生的半条指令 l(LABEL, _, _,L)不产生目标代码,只向不产生目标代码,只向L所所分配到的存储单元写入转向地址。分配到的存储单元写入转向地址。 l(GOTO, _, _, L)生成的目标代码为生成的目标代码为JMP *Ll( ENTRY, Q, , ) 不产生目标代码,只需将当前不产生目标代码,只需将当前指令地址指令地址A填入填入Q的相应语义信息中。的相应语义信息中。l(ENDPROC, ,)或或(ENDFUNC,) 1. 将本层活动记录中保存的机器状态恢复过来,对应一组读指令。2. 删除本层活动记
6、录,使动态外层的活动记录成为当前活动记录;3. 按1(top)中记载的返回地址返回。目标代码为: ST top, sp LD sp , 0(top) / 作废当前活动记录 JMP 1(top) /按返回地址返回 l值参情形值参情形 (ValACT , t , Offset , size )a. 若若t为间接变量,则生成的目标代码为:为间接变量,则生成的目标代码为:LD R , * tST offset(sp) , Rb. 若若t 为直接变量为直接变量 ,则生成的目标代码为:,则生成的目标代码为: LD R ,t ST offset(sp) , R c. 若若t 为数组,则生成的目标代码为:为数
7、组,则生成的目标代码为:moveB t , offset(sp) , size l 变参情形变参情形 (VarACT , t, Offset , size )a. 若若t为直接变量,则生成的目标代码为:为直接变量,则生成的目标代码为:LEA R , tST offset(sp) , Rb. 若若t为间接变量为间接变量,,则生成的目标代码为:,则生成的目标代码为:LD R , t ST offset(sp) , R l过程、函数调用语句过程、函数调用语句 (CALL , f , , t ) 1. 生成填写变量访问环境指令生成填写变量访问环境指令2. 把机器状态把机器状态(寄存器内容寄存器内容)保存到活动记录的机器保存到活动记录的机器状态区中状态区中,一般应生成一组存的指令一般应生成一组存的指令3. 要填写管理信息要填写管理信息.首先填写过程层数首先填写过程层数.从过程从过程f的的语义信息中取其层数语义信息中取其层数,填入到填入到2(top)中)中,生成指令生成指令为为LD R , semf.levelST 2(top), R4. 填写动态链指针填写动态链指针ST 0(top), sp5. 填写返回地址填写返回地址LD R, A+5 / AST 1(top), R / A+1 6. 生成过程活动记录生成过程活动记录ST sp, top / A +2ST top, top + se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年广州市番禺区四年级数学下学期期中复习检测模拟试题(含答案)
- 关于优化办公区域布局的沟通函4篇
- 2025-2026学年广东省河源市连平县数学三年级下学期期中学业质量监测试题含答案解析
- 2025-2026学年平南县数学三下期中监测试题(含答案)
- 招聘3人!泽库县王家乡卫生院公开招聘人员笔试参考题库及答案详解
- 银川西夏德胜小学教师招聘笔试参考题库及答案详解
- 2026年贵州磷化(集团)有限责任公司夏季社会招聘30人考试备考题库及答案详解
- 2026年7月重庆市万州区陈家坝街道办事处非全日制公益性岗位招聘2人笔试参考题库及答案详解
- 初中一年级语文《古代诗歌四首・天净沙・秋思》教案
- 初中一年级数学“等式的性质”教案
- Z3050摇臂钻床使用操作说明书
- 浙江省杭州市萧山区2025年六年级下学期小升初招生数学试卷含解析
- 分布式光伏0.4kV配电柜技术规范书
- 道路清扫保洁及垃圾清运服务投标方案技术标
- 《金庸武侠经典》课件
- 史上最全船舶演习记录规范(中英文对照)
- PIPESIM软件教程(软件介绍及模型建立)
- 三维动画基础完整课件
- 中国金融机构从业人员犯罪问题研究白皮书
- GB 10631-2004烟花爆竹安全与质量
- GA/T 1450-2017法庭科学车体痕迹检验规范
评论
0/150
提交评论