- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
国防科技工业试验与测试技术高层论坛
基于虚拟机的微型编译系统的研究与设计
于永彦,朱德伦
(淮阴工学院计算机工程系,江苏淮安223001)
摘要:虚拟机可以解决不同网络平台之间的资源共享与信息传递,基于虚拟机技术的编译系统可以模拟远程硬件平台的
软件环境与编译功能,实现某种特殊需求,进而开发一种新的编程思想与模式.文章从基于面向对象的虚拟机出发,探讨设
计一种微型编译系统的理论基础与技术可行性,并实际给出一个编译器实例及与之对应的汇编语言指令系统.
关键词:面向对象;编译器;汇编语言;指令
1 引言
虚拟机的实质就是在源平台上通过软件构造出一个能够模拟目标硬件平台的仿真器,其核心是通过软
件技术对抽象机处理器进行模拟,是一种利用软件方式模拟计算机处理器工作机能的程序。当系统正确启
动之后,开始执行保存在可执行字节码文件里的指令。可执行字节码文件是一种二进制文件,文件里主要
是针对虚拟机运行时环境而设计的“机器指令”,只有虚拟机才能够了解这些指令的作用和相应的操作过
程。首先,虚拟机将从宿主操作系统的文件系统中读取目标字节码文件中的“机器指令”,并把这些指令
加载到虚拟机开辟出来的内存空间之中;然后,在加载“机器指令”之后作必要的指令检验工作;接着,
根据用户对运行时环境的要求,设定、构造并配置虚拟机的内存环境,初始化虚拟机系统的主要系统寄存
器;最后执行这些“机器指令”,并作相应的操作,直到处理器遇到停机指令。
2面向对象的虚拟机体系结构
虚拟机的灵魂是具备宽泛的高可移植性,在设计的时候使用软件的方式来管理虚拟机自己的内存空
间。在启动时向宿主操作系统系统申请一段内存空间,然后将这一段分配得到的线性内存空间构造出一个
人工设定的地址空间来给基于虚拟机运行时环境的应用程序在运行时使用。这个人工的地址空间将被分成
三段:一个正文段、一个数据段和一个堆栈段。
虚拟机模拟的“处理器”是基于寄存器的,拥有若干个寄存器,8个系统寄存器,包括:5个段寄存
寄存器;8个单精度浮点寄存器。在虚拟机的内存空间中的项部同时存在一个小型的堆栈,以方便实现应
用程序的上下文切换。为了方便那些在虚拟机平台上做程序设计开发的程序员了解虚拟机的运行时状态,
在虚拟机内部设置了一个32位的程序状态字。这样可以利用状态字来表示虚拟机在运行的遇到的各种情
况,比如程序运算时出现溢出状态等。
处理器的主要功能是运算。在虚拟机的处理器中,由于是软件模拟实现的,所以不可能真正的构造一
个非常的复杂的运算机构,而是直接运用高级程序设计语言中提供的运算功能来实现。其中,主要的运算
流程主要是:
1)通过设置程序状态字(PSW)打开虚拟机自身的“中断服务例程”:
2) 根据用户的需要,通过设置程序状态字(PSW)来决定是否打开Debug模式;
3) 从内存空间中读取一个机器指令;
4) 判断是否是停机指令。如果是,则跳转到第f步,否则继续;
5) 根据该指令的内容,执行相应的机器操作。跳转到第c步;
6) 根据从应用程序返回的值来判断程序运行是否成功;
·
· 163
7)将操作权返回操作系统。
整个处理器运算循环过程如图l所示。
作为一个平台,虚拟机同样需要具有中断机制。虚拟机依
赖于宿主操作系统来提供输入,输出等基本的服务,这样可以独
立于各个硬件平台,达到较好的移植性。虚拟机使用标准C,C++
程序设计语言来基本的操作系统服务,如输入,输入机制、文件
输入/输出机制和内存管理机制等。当然,虚拟机有专门的中断
服务来完成对中断服务的分析和执行过程。
虚拟机要实现高可移植性,需要制作一个平台中立的内核
执行引擎。为此将运
文档评论(0)