第10章 目标代码生成.ppt





《第10章 目标代码生成.ppt》由会员分享,可在线阅读,更多相关《第10章 目标代码生成.ppt(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1编译原理电子教案韶关学院计算机系程细柱第第1010章章 目标代码生成目标代码生成|目标代码目标代码(单寄存器单寄存器)|临时变量的存储空间分配临时变量的存储空间分配|寄存器的分配和释放寄存器的分配和释放2编译原理电子教案韶关学院计算机系程细柱10.1 目标代码目标代码|虚拟目标代码:虚拟目标代码:虚拟机上的目标程序。虚拟机上的目标程序。在本地机器上具备虚拟机的解释器。在本地机器上具备虚拟机的解释器。|实际目标代码:实际目标代码:实际机器上的指令序列实际机器上的指令序列 绝对地址机器代码:绝对地址机器代码:可重定位的机器代码:可重定位的机器代码:汇编代码:汇编代码:3编译原理电子教案韶关学院计
2、算机系程细柱三种硬件地址模式三种硬件地址模式|指令格式:指令格式:Op#C R Op#C R (立即立即-寄存器)寄存器)Op d(R1)R2 Op d(R1)R2 (存储器存储器-寄存器)寄存器)Op R1 R2 Op R1 R2 (寄存器寄存器-寄存器)寄存器)|几个常见指令的含义几个常见指令的含义 :Load Source R Load Source R 从从Source Source 读出送入读出送入R R Op Source R Source op R Op Source R Source op R结果结果 送入送入R R Store Target R R Store Target
3、R R的内容送入的内容送入Target.Target.4编译原理电子教案韶关学院计算机系程细柱目标代码的生成(单寄存器)目标代码的生成(单寄存器)|形如(形如(OpOp,A A,B B,T T):):Load A RLoad A R;Op B ROp B R|形如形如(ASSIG,A,B)ASSIG,A,B):Load A RLoad A R;Store R BStore R B|例:例:Z:=X*(a+b)*Y*(a+b)Z:=X*(a+b)*Y*(a+b)(,a,b,t1)a,b,t1)Load a R;Add b RLoad a R;Add b R(*,(*,X,t1,t2)X,t1,t
4、2)Store R t1;Store R t1;MultMult X R X R(*,(*,t2,Y,t3)t2,Y,t3)MultMult Y R Y R(*,(*,t3,t1,t4t3,t1,t4)MultMult t1 R t1 R5编译原理电子教案韶关学院计算机系程细柱标号和标号和Jump的代码的代码|标号到代码地址的对应表(标号到代码地址的对应表(flag,L,Addr)|形如形如(Label L):当对应表中没有当对应表中没有L项时:项时:填写表项填写表项(1,L,Pc),Pc表表示示 下一条目标代码的地址。下一条目标代码的地址。当有当有L项项(0,L,P)时:时:从从P顺着链回填
5、地址顺着链回填地址Pc|形如形如(Jump L):对应表中没有对应表中没有L项时构造链头项时构造链头P:(Jump,nil):填写表项填写表项(0,L,P);当有表项当有表项(0,L,P)时:时:拉链拉链P:(Jump P),修改表修改表项为项为 (0,L,P);当有表项当有表项(1,L,P)时:时:取出取出L的地址的地址P生成代码。生成代码。6编译原理电子教案韶关学院计算机系程细柱过程过程/函数调用的代码函数调用的代码|主要工作:主要工作:过函调用时:过函调用时:申请新申请新AR空间空间 参数传递参数传递 转向转向 过程体过程体 过函入口:过函入口:填写填写AR的相关内容。的相关内容。过函返
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第10章 目标代码生成 10 目标 代码 生成

限制150内