基于emu806的虚拟机床系统实验设计_第1页
基于emu806的虚拟机床系统实验设计_第2页
基于emu806的虚拟机床系统实验设计_第3页
基于emu806的虚拟机床系统实验设计_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于emu806的虚拟机床系统实验设计

虚拟化是当今信息技术最受欢迎的趋势之一,并非偶然。当各种技术都包罗在虚拟化之中时,它们都正在以显著的方式改变着IT世界。从经济学角度来说,它主要有节约成本的优点。虚拟技术的分类很多,具有代表的学者DavidChappell认为,虚拟技术分为硬件虚拟化、展示虚拟化和应用程序虚拟化3个领域。还有一些学者将虚拟技术分为硬件虚拟化、操作系统虚拟化和编程虚拟化。微机原理与接口技术课程的主要内容是微机系统的工作原理。在实际的教学中,实验设备昂贵,造成实验环节比重过少,不能充分发挥学习者的创造性和能动性。而实践证明,做中学是一种非常高效的现代教育理论,做中学理论即“从活动中学”和“从经验中学”。本文介绍一些基于仿真软件EMU8086的虚拟微机系统实验,使学习者容易达到做中学的目的。1基于emu8065的实现以Intel8086为CPU的微型计算机系统IBMPC/XT是16位计算机的代表性机型,它是学习32位乃至64位计算机原理的基础。EMU8086是基于8086CPU和DOS操作系统的虚拟软件,属于硬件虚拟技术。EMU8086是交互式学习汇编语言(AssemblyLanguage)、计算机结构(ComputerArchitecture)和逆向工程(ReverseEngineering)的完整仿真体系。其内部集成了汇编程序汇编器、参考资料、程序实例、学习指南和虚拟硬件等。EMU8086是学习Intel8086微型计算机的虚拟工具。它模拟真实微处理器的每一步骤,并显示内部寄存器、存储器、堆栈、变量和标志寄存器,而且其中任何一个值都可通过鼠标双击来改变。同时它还可虚拟I/O接口,以及屏幕、电机、红绿灯、LED等外部设备。微型系统实验包括汇编语言实验、硬件接口实验、硬件中断实验、软盘实验以及操作系统实验等几个部分。1.1指令跟踪运行界面要完成汇编语言实验,可利用EMU8086中集成的编辑器、汇编器、连接器和跟踪执行器等模块来实现。新建一个汇编语言源程序时,EMU8086自动给出了汇编语言的基本框架,在框架的基础上,只用写出汇编语言的核心语句,之后点击相应按钮,系统完成编译、连接,无错误后即自动进入到指令跟踪运行界面。该平台具有单步和连续运行方式,连续运行每条指令的执行间隔从0~400ms可调节。通过此界面还可以观察CPU内部寄存器的值,观察指令机器码和对应的反汇编指令。跟踪执行器还可以显示算术逻辑单元(ALU)的二进制数值和CPU内部标志寄存器(FLAGS)的值,用来供学习者全面理解CPU的工作机理和监视内部运行状态。1.2emu8065的虚拟表面处理8086微型计算机采用典型的总线结构,包括数据总线、地址总线和控制总线。CPU访问内存和I/O外设都是通过地址来进行的,而且均采用独立编址。访问内存的方法较简单,在此不做赘述。在此重点介绍访问I/O外设的方法,EMU8086虚拟外设跟实际8086一样,采用16位地址译码,共有65536个(地址范围0000H~0FFFFH)I/O地址可供使用。EMU8086虚拟外设的机理是,使用一个纯二进制文件EMU8086.io来存放所有端口的值,每个端口都存放着一个8位二进制数,字节的序号与端口序号一一对应,即第0字节存放0000H端口的数据,0100H存放0100H端口的数据,以此类推。基于上述原理,在EMU8086系统中,理论上可生成任何有效地址的用户自定义外设,对于这些虚拟外设,可通过输入输出指令来访问。EMU8086虚拟外设可由任何语言,如JAVA、VB、VC++、DELPHI、C#、.NET等来生成,或由其他可访问文件的语言来生成。例如,用VB虚拟出一个输出外设,其端口地址是200H,则在汇编语言中使用OUT指令往文件EMU8086.io的第200H字节处写入数值“55H”,虚拟外设读取该字节,就会实时得到“55H”这个值,这样就完成了输出数据到外设。输入的方法与之类似。EMU8086自带了几个虚拟外设,包括液晶显示器、交通灯系统、机器人、打印机、步进电机等外设,可以完成基本的I/O实验,每个外设对应一个或多个固定端口地址。1.3中断号对应的请求标志硬件中断是微机系统的重要组成部分。硬件中断通常由外设触发,执行特定的中断服务程序。硬件中断严格受硬件中断控制标志IF位的控制,当IF为0时禁止中断,为1时打开中断。EMU8086实现硬件中断的机理是,它将256个中断(0~255号)的中断请求标志存放于一个256字节的二进制文件EMU8086.hw,一个中断号对应的请求标志,此标志占用一个字节,该字节为0表示该中断无请求,为非零时表示该中断有请求。在中断打开的情况下,系统不断扫描保存在EMU8086.hw中的请求标志,当某个中断号对应的标志字节为非零时,系统自动到中断向量表(内存0000~003FH)查找该中断的中断向量,转向该中断服务程序执行,并且将EMU8086.hw中的对应标志字节清零。CLI指令用来关闭中断,STI用来打开中断,无论在整个程序还是硬件中断程序执行过程中,硬件中断都可设置为打开或关闭状态。例如,主程序初始化代码用STI打开中断,主程序在执行过程中,如果某虚拟外设将EMU8086.hw中第2个字节触发为01H,这时第02H号中断就被触发,假设02号中断向量为1200H:0100H,则CPU保护好主程序的现场,转向1200H:0100H处执行中断服务程序,之后恢复现场,返回主程序。1.4软磁盘的虚拟应用EMU8086能够生成纯二进制代码文件(*.bin)和基于软磁盘的启动程序。纯二进制代码文件类似于com文件,但没有1MB的限制。由软磁盘启动时CPU读取软盘0面、0磁头、0扇区代码到内存0000H:7C00H处。软磁盘是8086微机系统的主要组成部分,EMU8086可虚拟最多4个软磁盘,分别命名软磁盘0~软磁盘3,虚拟软磁盘与标准的1.4寸软磁盘一样,容量为1474560字节。通过EMU8086的菜单可添加或删除软磁盘的数量,软磁盘的格式与IBM/MS-DOS的软磁盘格式完全兼容。可使用BIOS的11H号软中断来获取虚拟软磁盘的数量,该中断返回值保存在累加器AX中,其值的第6、7位决定了虚拟软磁盘的数量,具体对应关系如下:00单个软磁盘012个软磁盘103个软磁盘114个软磁盘访问软磁盘可通过13H号中断实现,2号功能用于读软磁盘,3号功能用于写软磁盘。寄存器DL用于定位访问哪个软磁盘,DH用于定位磁头,CH用于定位柱面号,CL用于定位扇区号,AL用于保存读写扇区的数量。内存缓冲区的位置由指针ES:BX来决定,这样就可完成软磁盘的读写操作。2虚拟实验的不足之处EMU8086是基于Windows操作系统的仿真软件,同其他仿真软件一样,它的仿真对象与真实对象有着部分功能或属性上的差异,由于仿真系统需要处理大量的功能仿真数据,没有对时间严格的监控,导致大部分仿真系统只侧重功能仿真,轻视或忽略时间的真实性,这些差异需要在实践过程中不断改善和克服,才能保证仿真对象的真实度。通过实践,虚拟实验的不足之处体现在以下几个方面。首先,EMU8086的仿真系统的运行速度与真实的8086系统不一样,而且由于运行仿真软件的计算机的性能有差异,导致仿真8086系统与实际的8086微机系统差异也不一致,在虚拟8086中代码运行1s,对应成真实的8086系统其运行时间可能是数ms,简言之,虚拟实验的时序与实际时序有差异。其次,EMU8086的编译系统不支持ORG、SEG等伪指令;对部分指令反汇编也不正确,如将指令LEABX,[200H]编译再反汇编后成了MOVBX,200H。第三,系统提供的接口和外设不能完全满足教和学的要求,部分硬件功能过于简单,在接口和硬件中断实验中,采用了端口地址及中断号固定位置映射的方法,没有涉及系统总线的硬件仿真。如果能够虚拟出系统总线,将总线加以开放并图形化,让使用者完成系统总线与虚拟接口之间的连线,这样更利于学习者理解微机系统的硬件工作原理。第四,在实际应用过程中,需要避免具有同一端口地址多个接口或外设同时运行,否则会造成数据冲突,出现错误。3虚拟的鞣来语基于EMU8086可完成多项微机原理及接口实验,主要有汇编语言、并行I/O接口、硬件中断、软盘读写、系统启动代码、操作系统等实验。虚拟的外设主要有五位七

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论