COMET虚拟机的设计拥碾实现.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  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文档。上传文档
查看更多
COMET虚拟机的设计拥碾实现

COMET虚拟机的设计与实现 摘 要 COMET虚拟机是一种为了教学目的而定义的虚拟机,其结构虽然简单,但功能完备,可作为一种教学辅助工具,帮助大学本科学习计算机课程的学生更好地理解现在计算机的结构和工作原理。作者基于原有COMET虚拟机定义,改进并实现了一个功能相对完备的虚拟机。COMET虚拟机 的开发主要突出两个原则:简单性和可移植性。本文将对COMET虚拟机的开发细节做一个完整的描述。 关键词 COMET虚拟机; 设计; 实现1 引言 虚拟机就是一台假想的机器。一台虚拟机与一台真实存在的计算机不同之处在于前者只是一个技术规范。虚拟机技术从很早就开始研究,并且在软件技术中广为应用。目前,高度可移植的JAVA编程语言采用的就是虚拟机技术。虚拟机不仅有广泛的商业应用价值,同时也可作为一种很好的教学辅助工具。通过虚拟机,学生可以很好地学习理解计算机的结构和工作原理。因此,设计并实现一个简单的虚拟机有很好的教学意义[4,5]。 COMET虚拟机开始只是作为CASL汇编语言的运行平台而设计,并由中国计算机软件专业技术资格和水平考试大纲中给出的CASL汇编语言文本定义(下文将简称为文本)。作者在文本的基础上,对COMET虚拟机的功能进行了一定的改进和扩充,并实现了一个功能完善的虚拟机实例[1]。2 COMET虚拟机设计2.1 逻辑结构图1 COMET虚拟机结构 COMET虚拟机是一台基于寄存器模型结构的计算机。COMET虚拟机系统主要包括三个部分:中央处理器(CPU)、存储器和出入输出设备。COMET计算机的逻辑结构如图1所示。CPU是由寄存器、算术逻辑部件和控制逻辑组成。寄存器在程序运行时存储计算过程的各种信息;算术逻辑部件的功能是进行所有的算术和逻辑运算。由于COMET计算机是虚拟的计算机,因此,它的控制逻辑对于我们是透明的[1,4,5]。2.2 寄存器 COMET虚拟机有5个通用寄存器GR(16位),一个指令计数器PC(16位)和一个标志寄存器FR(2位)。 GR(通用寄存器) 5个通用寄存器的编号为0、1、2、3、4,分别记为GR0、GR1、GR2、GR3、GR4。这些通用寄存器用于算术、逻辑、移位等运算,其中GR1、GR2、GR3、GR4通用寄存器兼做变址寄存器。另外,GR4还兼做栈指针(SP)用,栈指针是存放栈顶地址用的寄存器。PC(指令计数器) 在执行指令的过程中,PC中存放着正在执行的指令的第一个字的地址。当指令执行结束时,一般是把PC的内容加上当前指令的长度(不同指令的长度不同),只有在执行转移指令且条件成立时,才将转移指令地址置入PC中。 FR(标志寄存器) 在ADD、SUB、MUL、DIV、MOD、AND、OR、EOR、CPA、CPL、SLA、SRA、SLL、SRL、LEA等指令执行结束时,根据执行的结果,将FR设置成00、01或10(大于、等于、小于或负数、零、正数)。它们不会因其他指令的执行而改变。2.3 存储器 COMET虚拟机是一台16位的定点计算机,主存储器的基本存储单位是字,总容量为65536(216=16k)字,各个字的地址按照0000-FFFF(十六进制)编号。一个字的16位二进制采用从左到右次序编号,如图2所示。图2 字节顺序 COMET虚拟机可以处理三种数据,即字符数据、带符号整数、地址数据。字符数据采用16位的Unicode字符;带符号整数采用二进制补码表示,可表示的数值范围为[-215,215-1];地址数据为无符号的整数,范围是[0,216-1]。 在实现的COMET虚拟机中,内存的高1k字保留用于各种专用的外设寄存器[1,3]。2.4 指令系统 COMET虚拟机和文本相比,新增加了HALT、MUL、SUB、MOD四条指令。下面只给出HALT、MUL、SUB、MOD四条指令的说明,其他的指令可以参考文本。HALT指令执行停机操作,占一个字长。MUL指令执行乘法操作,操作规则和ADD等指令相似,占2个字长。SUB指令执行除法操作,操作规则和ADD指令相似,占2个字长。MOD指令执行取模操作,操作规则和ADD指令相似,占2个字长。2.5 指令格式 COMET虚拟机机器指令一般包含三种信息:OP,GR,XR,ADR。其中OP为机器指令的编号,对应第一个字的[0-7]位;GR为通用寄存器编号,对应第一个字中的[8-11]位;XR为变址寄存器编号,对应第一个字的[12-15]位,[12-15]位为0表示没有变址(GR0不能作为变址寄存器);ADR为操作数,对应地二个字的[0-15]位。如果一个指令不含某种信息(例如,没有ADR),则忽律该字段。OP、GR、XR、ADR的存储细节如图3所示。图3 指令格式 根据指令操作数据的类型的不同,可将COMET虚拟机的机器指令分为四种:寄存器-存储器型,存储器

文档评论(0)

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

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

1亿VIP精品文档

相关文档