《Emu8086在《微机原理与接口技术》中的应用2.pdf》由会员分享,可在线阅读,更多相关《Emu8086在《微机原理与接口技术》中的应用2.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Emu8086 在微机原理与接口技术中的应用 摘 要:微机原理与接口技术课程的主要内容是微机系统的工作原理。微机原理与接口技术作为计算机专业及其相关专业的一门基础课,其重要性是不言而喻的,若在该门课程的教学中能灵活运用 Emu8086 仿真软件进行演示及实验教学,则能让学生直观地理解的工作原理和工作过程,提高学生的学习兴趣,较好地解决了微机原理课程教学中存在的难题。在实际的教学中,实验设备昂贵,造成实验环节比重过少,不能充分发挥学习者的创造性和能动性。而实践证明,做中学是一种非常高效的现代教育理论,做中学理论即“从活动中学”和“从经验中学”。本文介绍一些基于仿真软件 Emu8086 的虚拟微机
2、系统实验,使学习者容易达到做中学的目的。简单介绍 Emu8086 功能,Emu8086 的使用使得汇编语言程序的编译、执行变得更加直观和清晰,有助于提高初学者的学习兴趣。关键词:微机原理 Emu8086 虚拟机 正文:微型计算机原理与接口技术主要是介绍以Intel8086/8088为 CPU 的 16 位机的结构、组成原理、指令系统,编程方法和接口技术等,以 8086/8088CPU 为基本出发点,详尽地论述有关微处理器及其指令系统的概念和程序设计方法,介绍构成微型计算机的存储器、各类可编程接口芯片、总线等各项技术。掌握先进微处理器芯片结构、微型计算机实现技术、计算机主板构成、各种接口技术原理
3、及其应用编程方法;掌握汇编语言程序的编写方法,尤其掌握接口访问的方法。了解微机技术新的发展趋势,系统科学地获得分析问题和解决问题的训练;提高分析和设计接口的能力。不仅要学习微机各种接口电路的原理与作用,熟悉 PC 系列机接口电路,而且还要掌握常用接口的设计与分析方法,学会使用汇编语言和 C 语言对接口进行编程,并具有一定的动手实验能力和接口应用程序的编写能力,为微机的深入学习与实践打下良好基础。有很多人认为汇编语言的应用范围很小,由此忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,
4、也是能够利用计算机所有硬件特性并能够直接控制硬件的唯一语言。Emu8086 是 8086 微处理器的仿真软件,完全兼容 Intel 和 Amd 系列,内部集成了汇编程序编译器、连接器和丰富的参考资料、例程、学习指南等。该款软件可模拟真实微处理器运行程序的详细步骤,不仅能够显示寄存器、存储器、堆栈、标志寄存器以及变量的值,而且还可通过双击鼠标来改变存储器的值。除此之外,通过Emu8086可模拟显示器、直流步进电机、交通红绿灯和LED 等外设。对于 Emu8086,可在工作区输入并编辑源程序。单击工具栏上的“Emulate”按钮,Emu8086 便会自动完成对源程序的编译和连接;如无错误,将会进入
5、指令调试界面。通过该软件提供的单步调试方式,可以方便观察当时寄存器值和状态。不仅如此,系统还可提供机器码、反汇编指令和指令地址,非常直观、便捷。动态调试程序 Debug,实际上是 DOS 中的一个外部命令,功能强大。通过 Debug提供的命令,可以监视和控制被调试程序的运行过程;可以装入、显示和修改文件;可对磁盘直接进行物理读写或逻辑读写。但是对于初学者来说,Debug难以掌握和理解,缺乏友好的互动界面。Emu8086 是交互式学习汇编语 言(AssemblyLanguage)、计算机结构(Computer Architecture)和逆向工程(Reverse Engineering)的完整仿
6、真体系。其内部集成了汇编程序汇编器、参考资料、程序实例、学习指南和虚拟硬件等。Emu8086 是学习 Intel 8086 微型计算机的虚拟工具。它模拟真实微处理器的每一步骤,并显示内部寄存器、存储器、堆栈、变量和标志寄存器,而且其中任何一个值都可通过鼠标双击来改变。同时它还可虚拟 I/O 接口,以及屏幕、电机、红绿灯、LED 等外部设备。微型系统实验包括汇编语言实验、硬件接口实验、硬件中断实验、软盘实验以及操作系统实验等几个部分。要完成汇编语言实验,可利用 Emu8086 中集成的编辑器、汇编器、连接器和跟踪执行器等模块来实现。新建一个汇编语言源程序时,Emu8086 自动给出了汇编语言的基
7、本框架,在框架的基础上,只用写出汇编语言的核心语句,之后点击相应按钮,系统完成编译、连接,无错误后即自动进入到指令跟踪运行界面。该平台具有单步和连续运行方式,连续运行每条指令的执行间隔从 0 400 ms 可调节。通过此界面还可以观察 CPU 内部寄存器的值,观察指令机器码和对应的反汇编指令。跟踪执行器还可以显示算术逻辑单元(ALU)的二进制数值和 CPU 内部标志寄存器(FLAGS)的值,用来供学习者全面理解 CPU 的工作机理和监视内部运行状态。8086 微型计算机采用典型的总线结构,包括数据总线、地址总线和控制总线。CPU 访问内存和 I/O 外设都是通过地址来进行的,而且均采用独立编址
8、。访问内存的方法较简单,在此不做赘述。在此重点介绍访问 I/O 外设的方法,Emu8086 虚拟外设跟实际 8086 一样,采用 16 位地址译码,共有 65536 个(地址范围0000H0FFFFH)I/O 地址可供使用。Emu8086 虚拟外设的机理是,使用一个纯二进制文件 Emu8086.io 来存放所有端口的值,每个端口都存放着一个 8 位二进制数,字节的序号与端口序号一一对应,即第 0 字节存放 0000H 端口的数据,0100H存放 0100H 端口的数据,以此类推。基于上述原理,在 Emu8086 系统中,理论上可生成任何有效地址的用户自定义外设,对于这些虚拟外设,可通过输入输出
9、指令来访问。Emu8086 虚拟外设可由任何语言,如 JAVA、VB、VC+、DELPHI、C#、.NET等来生成,或由其他可访问文件的语言来生成。硬件中断是微机系统的重要组成部分。硬件中断通常由外设触发,执行特定的中断服务程序。硬件中断严格受硬件中断控制标志 IF 位的控制,当 IF 为 0 时禁止中断,为 1 时打开中断。Emu8086 实现硬件中断的机理是,它将 256 个中断(0255 号)的中断请求标志存放于一个 256 字节的二进制文件 Emu8086.hw,一个中断号对应的请求标志,此标志占用一个字节,该字节为 0 表示该中断无请求,为非零时表示该中断有请求。在中断打开的情况下,
10、系统不断扫描保存 Emu8086.hw 中的请求标志,当某个中断号对应的标志字节为非零时,系统自动到中断向量表(内存 0000003FH)查找该中断的中断向量,转向该中断服务程序执行,并且将 Emu8086.hw 中的对应标志字节清零。CLI 指令用来关闭中断,STI 用来打开中断,无论在整个程序还是硬件中断程序执行过程中,硬件中断都可设置为打开或关闭状态。例如,主程序初始化代码用 STI 打开中断,主程序在执行过程中,如果某虚拟外设将 Emu8086.hw 中第 2 个字节触发为 01H,这时第 02H 号中断就被触发,假 设 02 号中断向量为 1200H:0100H,则 CPU 保护好主
11、程序的现场,转向 1200H:0100H 处执行中断服务程序,之后恢复现场,返回主程序。Emu8086 能够生成纯二进制代码文件(*.bin)和基于软磁盘的启动程序。纯二进制代码文件类似于 com 文件,但没有 1 MB 的限制。由软磁盘启动时 CPU 读取软盘 0 面、0 磁头、0 扇区代码到内存 0000H:7C00H 处。软 磁 盘 是 8086微机系统的主要组成部分,Emu8086 可虚拟最多 4 个软磁盘,分别命名软磁盘 0软磁盘 3,虚拟软磁盘与标准的 1.4 寸软磁盘一样,容量为 1474560 字节。通过 Emu8086 的菜单可添加或删除软磁盘的数量,软磁盘的格式与 IBM/
12、MS-DOS 的软磁盘格式完全兼容。可使用 BIOS 的 11H 号软中断来获取虚拟软磁盘的数量,该中断返回值保存在累加器 AX 中,其值的第 6、7 位决定了虚拟软磁盘的数量,具体对应关系如下:00 单个软磁盘 01 2 个软磁盘 10 3 个软磁盘 11 4 个软磁盘 访问软磁盘可通过 13H 号中断实现,2 号功能用于读软磁盘,3 号功能用于写软磁盘。寄存器 DL 用于定位访问哪个软磁盘,DH 用于定位磁头,CH 用于定位柱面号,CL 用于定位扇区号,AL 用于保存读写扇区的数量。内存缓冲区的位置由指针 ES:BX 来决定,这样就可完成软磁盘的读写操作。Emu8086 是基于 Windo
13、ws 操作系统的仿真软件,同其他仿真软件一样,它的仿真对象与真实对象有着部分功能或属性上的差异,由于仿真系统需要处理大量的功能仿真数据,没有对时间严格的监控,导致大部分仿真系统只侧重功能仿真,轻视或忽略时间的真实性,这些差异需要在实践过程中不断改善和克服,才能保证仿真对象的真实度。通过实践,虚拟实验的不足之处体现在以下几个方面。首先,Emu8086 的仿真系统的运行速度与真实的 8086 系统不一样,而且由于运行仿真软件的计算机的性能有差异,导致仿真 8086 系统与实际的 8086 微机系统差异也不一致,在虚拟 8086 中代码运行 1 s,对应成真实的 8086 系统其运行时间可能是数 m
14、s,简言之,虚拟实验的时序与实际时序有差异。其次,Emu8086 的编译系统不支持 ORG、SEG 等伪指令;对部分指令反汇编也不正确,如将指令 LEABX,200H编译再反汇编后成了 MOV BX,200H。第三,系统提供的接口和外设不能完全满足教和学的要求,部分硬件功能过于简单,在接口和硬件中断实验中,采用了端口地址及中断号固定位置映射的方法,没有涉及系统总线的硬件仿真。如果能够虚拟出系统总线,将总线加以开放并图形化,让使用者完成系统总线与虚拟接口之间的连线,这样更利于学习者理解微机系统的硬件工作原理。第四,在实际应用过程中,需要避免具有同一端口地址多个接口或外设同时运行,否则会造成数据冲
15、突,出现错误。从微机应用系统的应用环境和特点来看,微机系统如何与千变万化的外部设备、外部世界相连,如何与它们交换信息,是微机系统应用中的关键所在,培养一定的微机应用系统的分析能力和初步设计能力才是最终目的。虽然,在短短的几个月的学习课程中,没有将课程学得非常透彻,但对其中的内容还是有很大的了解。微机原理将会对以后的专业课学习发挥重大的作用。在以后的学习生活和工作中将会得到更广泛的应用。另外,通过这门课的学习,我懂得了,读书不能死读,不能整天学习这八股文,我们应该,通过学习基本知识,找出有用的价值所在。然后,更进一步的学习,这样将学得更有效且更实用。希望以后能够找到正确的学习方法不断的学习,能够
16、更好的应用到今后的社会实践中去。总结:基于 EMU8086 可完成多项微机原理及接口实验,主要有汇编语言、并行 I/O 接口、硬件中断、软盘读写、系统启动代码、操作系统等实验。虚拟的外设主要有五位七段数码管、并行接口打印机、移动障碍物机器人、并口数据收发器、步进电机、温度控制模型。其中汇编语言、并行 I/O 接口、硬件中断是信息类本科生基本的学习内容,数码管、电机等外设是实验中典型的外设。通过这些基本接口和外设,可辅助学生学习微机原理及接口技术。较复杂的接口和外设可组合出不同的拓展实验,提高学生的综合应用能力。这些接口和外设所对应的实验在 4.08 版本中验证通过。EMU8086 的工作界面为
17、很简洁,它能模拟真实微处理器工作的每一步骤,通过单步调试显示指令执行后 CPU 内部寄存器、存储器、堆栈、变量和标志寄存器的当前值,操作简单直观,通过它我们可以很快掌握汇编程序设计和接口技术等知识。在实验过程中也是我们学习到了很多知识,很多课堂上不是很了解的知识也得到了清晰地理解。与实验室里的星研比较,EMU8086 有着很大的优势,在编译、运行的步骤上尤为简单。因此实验过程中,我们一直用的是 EMU8086 来编写实验代码,然后进行相应的分析,很少用到星研。致谢:在微机原理课程的学习过程中,丁老师给我们细心讲解了一个个重要的知识点,并为我们一一解答了我们学习过程中遇到的问题及疑惑。因此在本学
18、期结束之际,再三感谢丁老师给予我及同学们在学习上的帮助和支持!参考文献:1 DAVID C.Virtualization for Windows:A Technology Over-view EB/OL.(2009-08-03).http:/www.davidchappe papers.php.2 孙 卫.虚拟技术综述J.数字图书馆论坛,2009(7):34-38.3 谷兆麟.基于 EMU8086 的微机系统的辅助学习方法J.天津工程师范学院学报,2006,16(4):26-27.4 戴梅鄂.微型计算机原理及接口技术M.4 版.北京:清华大学出版社,2003:1-20.5周荷琴,吴秀清 微型计算机原理与接口技术.合肥:中国科技大学出版社,2008