程序设计语言与编译ppt课件_10.1 目标代码生成概述.pptxVIP

程序设计语言与编译ppt课件_10.1 目标代码生成概述.pptx

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

第十章目标代码生成;目标代码生成的任务是将中间代码翻译成等价的目标代码。

输入:中间代码(三地址码)

输出:目标代码(汇编代码);针对特定的目标计算机,目标代码生成须要考虑的主要问题包括:

1. 目标计算机的指令系统

2. 目标计算机的寄存器分配

3. 目标计算机的存储空间分配

;GAM(GeneralAbstractMachine),一个冯●诺依曼体系结构的抽象计算机,目前(不代表将来)没有真实的硬件实现,可用虚拟机模拟实现。

1. 寄存器(专用寄存器、通用寄存器,共16个32位寄存器)

2. 存储空间(代码空间、数据空间,共享4G字节存储空间)

3. 指令系统(精简指令集,每条指令占8个字节)

;专用寄存器

R0:标志位(FLAG)

R1:指令指针(IP)

R2:基址指针(BP)

R3:跳转指针(JP)

R4:临时结果(TP)

;存储空间;每条指令占8个字节,分为4个字段:

1. 操作码(1~2字节)

2. 目标寄存器(3字节)

3. 源寄存器(4字节)

4. 立即数(5~8字节);LODRx,x/Lx 0x10寄存器立即数

LODRx,Ry 0x11寄存器寄存器

LODRx,Ry+/-x 0x12寄存器寄存器+/-立即数

LODRx,(x/Lx) 0x13寄存器内存(地址为立即数)

LODRx,(Ry) 0x14寄存器内存(地址为寄存器)

LODRx,(Ry+/-x) 0x15寄存器内存(地址为寄存器+/-立即数);STO(Rx),x/Lx 0x20内存(地址:寄存器)立即数

STO(Rx),Ry 0x21内存(地址:寄存器)寄存器

STO(Rx),Ry+/-x 0x22内存(地址:寄存器)寄存器+/-立即数

STO(Rx+/-x),Ry 0x23内存(地址:寄存器+/-立即数)寄存器;ADDRx,x/Lx 0x30加立即数

ADDRx,Ry 0x31加寄存器

SUBRx,x/Lx 0x40减立即数

SUBRx,Ry 0x41减寄存器

MULRx,x/Lx 0x50乘立即数

MULRx,Ry 0x51乘寄存器

DIVRx,x/Lx 0x60除立即数

DIVRx,Ry 0x61除寄存器;JMPLx 0x80立即数

JMPRx 0x81寄存器

TSTRx 0x70测试寄存器

JEZLx 0x82立即数

JEZRx 0x83寄存器

JNZLx 0x84立即数

JNZRx 0x85寄存器;END 0x00结束

NOP 0x01空转

OUT 0x02输出

DBS1,1,1,1,1 N/A 定???多个字符

DBN1,5 N/A 重复定义字符;calc:gpltacgalgvm

if:gpltacgalgvm

while:gpltacgalgvm

func:gpltacgalgvm

文档评论(0)

Kaiser + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档