- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5tO第八章 虚拟机
第八章 虚拟机虚拟机技术并不是一项全新的技术。现在我们经常可以看到很多的虚拟机。首先,比如说我们很熟悉的JAVA虚拟机、还有GWBasic解释器、Microsoft Word的WordBasic宏解释器等等。虚拟机的应用场合很多,它的主要作用是能够运行一定规则的描述语言。
虚拟机的“虚拟”二字,有着两方面的含义:其一是指运行一定规则的描述语言的机器并不一定是一台真实地以该语言为机器代码的计算机,比如JAVA想做到跨平台兼容,那么每一种支持JAVA运行的计算机都要运行一个解释环境,这就是JAVA虚拟机;另一个含义是指运行对应规则描述语言的机器并不是该描述语言的原设计机器,这种情况也称为仿真环境。比如Windows的MS-DOS Prompt就是工作在V86 方式的一个虚拟机,虽然在V86方式,实x86指令的执行和在实地址方式非常相似,但是Windows为MS-DOS程序提供了仿真的 ( 相对于物理1M以下内存是虚假的)内存空间。
跨越计算机平台的虚拟机也有很多,比较典型的是在很多Unix下运行MS-DOS或Windows程序的仿真器。在一台非WinTel计算机上运行 MS-DOS应用程序,首先需要对MS-DOS应用程序所使用的x86指令进行解释执行,并要提供完整的仿真MS-DOS中断、功能调用和绝大多数BIOS调用,并要解决MS-DOS 环境所使用的内存特点。根据仿真的彻底程度不同,所获得的兼容性也是不同的。 如果要仿真 MS-Windows 程序的运行环境,除了上述工作以外,基本上要完整地再做一份完全兼容的 Windows API,并且会遇到DDE、OLE、DirectX 等类似的令人头疼的兼容性问题。同时,仿真运行的程序必定是以比宿主计算机慢得多的速度来运行的。
因此,我们大致可以看到一个比较完整的虚拟机需要在很多的层次上做仿真,总的来说是分为“描述仿真”和“环境仿真”两大。最简单的仿真环境几乎不能算是虚拟机:比如为了运行使用磁盘加密而制作的钥匙盘仿真驻留程序,它仅仅做一些诸如修改Int13这样的小手段,而不必包括指令执行的“描述仿真”;而象 Sourcer 这样的反汇编工具则是更注重指令解释, 而不必关心程序的运行结果,因此在环境仿真上所做的工作要少得多。完整、复杂的虚拟机是几乎没有尽头的,假想我们要在一台Unix计算机上运行一个看VCD的Windows 95程序,或是运行一个使用8259中断、8237DMA的程序……, 有些仿真在理论上是可以实现的,有些则很可能行不通。所以,一个实用的虚拟机是根据需要和可能这两方面的因素来构造的,要权衡时间/空间复杂度、仿真兼容性、 运行性能和代价等诸多因素,根据实际情况来设计和实现。
8.1虚拟机结构设计
粗略的介绍完虚拟机的概念以后,接下来将介绍在我们设计的虚拟机中是如何实现对“仿真”的实现的,在我们设计的虚拟机中,它主要包含下面几个部分:一个完整的指令系统、一组寄存器、一个栈、一个用于对象存储的堆、一组符号表和一个代码存储区。
8.1.1 指令系统
MOV
功能: 把源操作数送给目的操作数
语法: MOV 目的操作数,源操作数
PUSH
功能: 把操作数压入堆栈
语法: PUSH 操作数
POP
功能: 把操作数取出堆栈
语法: POP 操作数
ADD
功能: 加法指令
语法: ADD OP1,OP2
SUB
功能:减法指令
语法: SUB OP1,OP2
INC
功能: 把OP的值加一或减一
语法: INC OP DEC OP
DEC
功能: 把OP的值减一
语法: DEC OP
MUL
功能: 乘法指令
语法: MUL OP1,OP2
DIV
功能:除法指令
语法: DIV OP1,OP2
JMP
功能: 无条件跳往指定地址执行
语法: JMP 地址
条件转移指令 JXX
功能: 当特定条件成立则跳往指定地址执行
语法: JXX 地址
说明:
JA/JNBE 不小于或不等于时转移.
JAE/JNB 大于或等于转移.
JB/JNAE 小于转移.
JBE/JNA 小于或等于转移.
JG/JNLE 大于转移.
JGE/JNL 大于或等于转移.
JL/JNGE 小于转移.
JLE/JNG 小于或等于转移.
JE/JZ 等于转移.
JNE/JNZ 不等于时转移.
CALL
功能: 子程序调用指令
语法: CALL 地址
VCALL
功能: 虚函数调用指令
语法: VCALL 地址
RET
功能: 子程序返回指令
语法: RET / RET n
NEW
功能: 对象地址分配指令
语法: NEW XXX
DELET
功能:地址回收指令
语法: DELET XXX
HALT
功能: 停机指令
语法: H
您可能关注的文档
最近下载
- 附着式升降脚手架施工方案范本.pdf VIP
- 小学四年级英语阅读理解30篇及小学四年级英语作文.doc VIP
- 电梯安装工程管理重难点分析.doc VIP
- 2025年保安员资格证考试题库大全(答案附后面).docx
- 【高考必备】高考总复习系列丛书-高三化学一轮复习考点优化设计(第五辑):考点六十三等效平衡Word版含解析[原创精品].doc VIP
- 米家小米智能门锁 E30使用说明书.pdf
- 统编版道德与法治八年级上册《诚实守信》说课课件.pptx VIP
- 第一单元峥嵘岁月 第1课情感表达 教学设计 人教版初中美术七年级上册.docx VIP
- 大班幼儿参与幼儿园物质环境创设的现状及提升策略.docx VIP
- 省优秀科组申报材料.pdf VIP
文档评论(0)