网站大量收购独家精品文档,联系QQ:2885784924

代码生成课件.pptVIP

代码生成课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

8.4一個簡單的代碼生成器賦值語句d:=(a?b)+(a?c)+(a?c)編譯產生三地址語句序列: t1:=a?b t2:=a?c t3:=t1+t2 d:=t3+t28.4一個簡單的代碼生成器語句生成的代碼寄存器描述名字地址描述寄存器空t1:=a?bMOVa,R0SUBb,R0R0含t1t1在R0中t2:=a?cMOVa,R1SUBc,R1R0含t1R1含t2t1在R0中t2在R1中t3:=t1+t2ADDR1,R0R0含t3R1含t2t3在R0中t2在R1中d:=t3+t2ADDR1,R0R0含dd在R0中MOVR0,dd在R0和記憶體中8.4一個簡單的代碼生成器前三條指令可以修改,使執行代價降低MOVa,R0 MOVa,R0SUBb,R0 MOVR0,R1MOVa,R1 SUBb,R0SUBc,R1 SUBc,R1... ...8.4一個簡單的代碼生成器8.4.4為變址和指針語句產生代碼 變址與指針運算的三地址語句的處理和二元算符的處理相同8.4一個簡單的代碼生成器8.4.5條件語句實現條件轉移有兩種方式根據寄存器的值是否為下麵六個條件之一進行分支:負、零、正、非負、非零和非正用條件碼來表示計算的結果或裝入寄存器的值是負、零還是正8.1代碼生成器的設計中的問題語句序列 a:=b+c d:=a+e的代碼如下MOV b, R0ADD c, R0MOV R0, aMOV a, R0ADD e, R0 MOV R0, d 8.1代碼生成器的設計中的問題語句序列 a:=b+c d:=a+e的代碼如下MOV b, R0ADD c, R0MOV R0, aMOV a, R0 --多餘的指令ADD e, R0 MOV R0, d 8.1代碼生成器的設計中的問題語句序列 a:=b+c d:=a+e的代碼如下MOV b, R0ADD c, R0MOV R0, aMOV a, R0 --多餘的指令ADD e, R0 --若a不再使用,第三條也MOV R0, d --多餘8.1代碼生成器的設計中的問題8.1.3寄存器分配 運算對象處於寄存器中的指令通常比運算對象處於記憶體的指令要短一些,執行也快一些寄存器分配 選擇駐留在寄存器中的一組變數寄存器指派 挑選變數要駐留的具體寄存器8.1代碼生成器的設計中的問題8.1.4計算次序的選擇 某種計算次序可能會比其他次序需要較少的寄存器來保存中間結果8.2目標機器8.2.1目標機器的指令系統選擇可作為幾種微機代表的寄存器機器四位元組組成一個字,有n個通用寄存器R0,R1,…,Rn-1。二地址指令op 源,目的 MOV {源傳到目的} ADD {源加到目的} SUB {目的減去源}8.2目標機器地址模式和它們的組合語言形式及附加代價模式 形式 地址 附加代價絕對地址 M M 1寄存器 R R 0變址 c(R) c+contents(R) 1間接寄存器*R contents(R) 0間接變址 *c(R) contents(c+contents(R))1直接量 #c c 18.2目標機器指令實例 MOV R0, M MOV 4(R0), M contents(4+contents(R0)) MOV *4(R0), M contents(contents(4+contents(R0))) MOV #1, R08.2目標機器8.2.2指令的代價 指令代價取成1加上它的源和目的地址模式的附加代價 指令 代價 MOVR0,R1 1 MOVR5,M 2 ADD#1, R3 2 SUB4(R0),*12(

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档