- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SVM调试器-湖南城建职业技术学院
目 录
1 绪论 1
1. 1课题背景及目的 1
1.1.1为什么要设计虚拟机 1
1.1.2虚拟机反对派观点 1
1.2国内外研究状况 2
1.3课题研究方法 2
1.4论文构成及研究内容 2
2 SVM 虚拟机设计 3
2.1运形时系统与虚拟机 3
2.2 SVM 虚拟机 3
2.3 SVM虚拟机处理器设计 5
2.3.1 机器处理器设计 5
2.3.2 SVM虚拟机处理器设计 6
2.4 SVM内存分配 8
2.5 SVM内存寻址 8
2.6 SVM 多字节存储方式 8
2.7 SVM输入输出 9
2.8 SVM 中断 10
2.9 SVM 汇编器 16
2.10 SVM 反汇编器 18
2.11 SVM 调试器 18
2.11.1概述 18
2.11.2调试技术 19
2.11.3 SVM 调试器的实现 19
2.12 建造运行时系统 20
2.13 SVM 虚拟机的扩展 20
3 SVM 虚拟机运行时环境 22
3.1SVM执行方式 22
3.2 SVM调试方式 23
4 程序设计处理 27
4.1程序设计中的宏处理 27
4.2程序设计中的异常处理 28
总 结 31
致 谢 33
参考文献 34
1 绪论
1. 1课题背景及目的
1.1.1为什么要设计虚拟机
就软件工业的发展趋势而言,一方面是需要运行在多种计算机平台之上的实用系统越来越多,另一方面是以网络为中心的计算情况越来越多,虚拟机也重新成为软件工业的一个潮流。
基于单一操作系统的软件开发工具已经不能满足软件工程师的需要。
面对杂乱的信息系统和日新月异的技术发明,软件工程师们开始重新审视开发虚拟机的优点。
编写虚拟机是软件开发项目的一种,它体现了一种使投资价值最大化的思路。为了从资源方面的投资得到最大的回报,企业都希望自己花钱开发出来的软件的使用期限能够尽可能地长。把软件包从一种平台移植到另一种平台的工作需要花费不小的成本,而且并不是所有的软件包都能够移植到所有的平台上去,软件包所能支持的平台种数是有限度的。大量事实表明,软件移植工作往往会变成一场噩梦。
使用虚拟机就可以在一定程度上避免这类事情的发生。当遇到一种新硬件平台或者新操作系统的时候,唯一需要移植的应用级软件就是虚拟机本身[1]。
1.1.2虚拟机反对派观点
有不少人反对使用虚拟机,他们的观点有许多种,其中最主要的就是虚拟机会降低程序的执行性能。他们认为,编译型语言——如C语言——是以计算机自身的机器码的形式执行的,因此会执行得更快些。但这种说法并不一定正确。
纯粹的C++代码并不一定比由虚拟机执行的字节码(byte code)更快。程序的执行时间主要消耗在运行时库以及内核模式中断处理例程方面,只有当处理的代码是完全孤立且没有调用任何用户库或系统调用时(因为程序要等待系统的响应)才能百分之百肯定其机器码会执行得更快。
对于企业应用级系统,虚拟级在可移植方面的优势足以弥补这些其实并慢不了多少的性能损失[1]。
1.2国内外研究状况
一个商业级的虚拟机实现是极其复杂的,一个开源虚拟机bochs 做得很好,其2.0.2版在Win32平台下的有13万行源代码(C/C++)。能在其上运行minux(linux 前身),FreeDSB, Windows95,Windows NT 4.0等操作系统。
另一种虚拟机有自己的指令集,它是针对一种语言来设计和实现的。比如JVM(JAVA virtual machine JAVA 虚拟机)。.NET平台。而由JVM所支持的JAVA语言,目前正得到广泛的应用。
1.3课题研究方法
一台虚拟机与一台真实存在的计算机的不同之处在于前者只是一个技术规范。这类技术规范由一系列规则构成,而软件工程师可以采用任何他自己认为适当的手段来实现这些规则。这就使虚拟机能够做到与具体的计算机平台无关。对一台虚拟机来说,只要它能够遵从其技术规范里的各项规则,就可以存在于任何一种计算机平台上,就可以用任何一种计算机语言来编写[1]。
我的毕业设计所做的虚拟机采用标准C/C++语言编写,在结构上模仿了8086计算机体系结构。
1.4论文构成及研究内容
本论文作为对虚拟机开发的一个尝试,实现的部分偏重于CPU也即指令执行部件。而对于虚拟机这个运行时系统的另一个很重要的部分——中断处理,由于涉及面太广,故只是象征性的实现了INT 10H 0EH中断(向屏幕输出),INT 20H中断(退出程序)。
我做的虚拟机取名为SVM(simple virual machine)——简单的虚拟机。
论文中将主要说明整个SVM虚拟机的设计实现过程,由于涉及到编程语言C/C++,也参考了一些程序设计书上的内容,在文中一并写出来。
(以后略……)
2 SVM 虚拟机设计
2.1运形时系统与虚拟机
运
文档评论(0)