Emu8086在微机原理与接口技术中的应用2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Emu8086在微机原理与接口技术中的应用2
Emu8086在《微机原理与接口技术》中的应用摘要:微机原理与接口技术课程的主要内容是微机系统的工作原理。

《微机原理与接口技术》作为计算机专业及其相关专业的一门基础课,其重要性是不言而喻的,若在该门课程的教学中能灵活运用
Emu8086仿真软件进行演示及实验教学,则能让学生直观地理解的工作原理和工作过程,提高学生的学习兴趣,较好地解决了微机原理课程教学中存在的难题。

在实际的教学中,实验设备昂贵,造成实验环节比重过少,不能充分发挥学习者的创造性和能动性。

而实践证明,做中学是一种非常高效的现代教育理论,做中学理论即从活动中学”和从经验中学”本文介绍一些基于仿真软件Emu8086的虚拟微机系统实验,使
学习者容易达到做中学的目的。

简单介绍Emu8086功能,Emu8086的使用使得汇编语言程序的编译、执行变得更加直观和清晰,有助于提高初学者的学习兴趣。

关键词:微机原理Emu8086虚拟机
正文:
微型计算机原理与接口技术主要是介绍以Intel8086/8088为CPU 的16位机的结构、组成原理、指令系统,编程方法和接口技术等,以8086/8088CPU为基本出发点,详尽地论述有关微处理器及其指令系统的概念和程序设计方法,介绍构成微型计算机的存储器、各类可编程接口芯片、总线等各项技术。

掌握先进微处理器芯片结构、微型计算机实现技术、计算机主板构成、各种接口技术原理及其应用编程方法掌握汇编语言程序的编写方法,尤其掌握接口访问的方法。

了解微机技术新的发展趋势,系统科学地获得分析问题和解决问题的训练;提高分析和设计接口的能力。

不仅要学习微机各种接口电路的原理与作用,熟悉PC系列机接口电路,而且还要掌握常用接口的设计与分析方法,学会使用汇编语言和C语言对接口进行编程,并具有一定的动手实验能力和接口应用程序的编写能力,为微机的深入学习与实践打下
良好基础。

有很多人认为汇编语言的应用范围很小,由此忽视它的重要性。

其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语
言。

汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能够直接控制硬件的唯一语言。

Emu8086是8086微处理器的仿真软件,完全兼容In tel和Amd 系列,内部集成了汇编程序编译器、连接器和丰富的参考资料、例程、学习指南等。

该款软件可模拟真实微处理器运行程序的详细步骤,不仅能够显示寄存器、存储器、堆栈、标志寄存器以及变量的值,而且还可通过双击鼠标来改变存储器的值。

除此之外,通过Emu8086可模拟显示器、直流步进电机、交通红绿灯和LED等外设。

对于Emu8086可在工作区输入并编辑源程序。

单击工具栏上的“ Emulate按钮,Emu8086便会自动完成对源程序的编译和连接;如无错误,将会进入指令调试界面。

通过该软件提供的单步调试方式,可以方便观察当时寄存器值和状态。

不仅
如此,系统还可提供机器码、反汇编指令和指令地址,非常直观、便捷。

动态调试程序Debug,实际上是DOS中的一个外部命令,功能强大。

通过Debug 提供的命令,可以监视和控制被调试程序的运行过程;可以装入、显示和修改文件;可对磁盘直接进行物理读写或逻辑读写。

但是对于初学者来说,Debug难以掌握和理解,缺乏友好的互动界面。

Emu8086是交互式学习汇编语言(AssemblyLanguage计算机结构(Computer Architecture和逆向工程(Reverse Engineering的完整仿真体系。

其内部集成了汇编程序汇编器、参考资料、程序实例、学习指南和虚拟硬件等。

Emu8086是学习In tel 8086微型计算机的虚拟工具。

它模拟真实微处理器的每一步骤,并显示内部寄存器、存储器、堆栈、变量和标志寄存器,而且其中任何一个值都可通过鼠标双击来改变。

同时它
还可虚拟I/O接口,以及屏幕、电机、红绿
灯、LED等外部设备。

微型系统实验包括汇编语言实验、硬件接口实验、硬件中断实验、软盘实验以及操作系统实验等几个部分。

要完成汇编语言实验,可利用Emu8086中集成的编辑器、汇编器、连接器和跟踪执行器等模块来实现。

新建一个汇编语言源程序时,Emu8086自动给出了汇编语
言的基本框架,在框架的基础上,只用写出汇编语言的核心语句,之后点击相应按钮,系统完成编译、连接,无错误后即自动进入到指令跟踪运行界面。

该平台具有单步和连续运行方式,连续运行每条指令的执行间隔从0 ~400 ms可调节。

通过此界面还可以观察CPU内部寄存器的值,观察指令机器码和对应的反汇编指令。

跟踪执行器还可以显示算术逻辑单元(ALU的二进制数值和CPU内部标志寄存器(FLAGS的值,用
来供学习者全面理解CPU的工作机理和监视内部运行状态。

8086微型计算机采用典型的总线结构,包括数据总线、地址总线和控制总线。

CPU访问内存和I/O外设都是通过地址来进行的,而且均采用独立编址。

访问内存的方法较简单,在此不做赘述。

在此重点介绍访问I/O外设的方法,Emu8086虚拟外设跟实际8086 一样,采用16位地址译码,共有65536个(地址范围
0000H~0FFFFHI/0地址可供使用。

Emu8086虚拟外设的机理是,使用一个纯二进制文件Emu8086.io来存放所有端口的值,每个端口都存放着一个8位二进制数,字节的序号与端口序号——对应,即第0字节存放0000H端口的数据,0100H存放0100H端口的数据,以此类推。

基于上述原理,在Emu8086系统中,理论上可生成任何有效地址的用户自定义外设,对于这些虚拟外设,可通过输入输出指令来访问。

Emu8086虚拟外设可由任何语言,如JA V A、VB、VC++、DELPHI、C#、.NET等来生成,或由其他可访问文件的语言来生成。

硬件中断是微机系统的重要组成部分。

硬件中断通常由外设触发,执行特定的中断服务程序。

硬件中断严格受硬件中断控制标志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处执行中断服务程序,之后恢复现场,返回主程序。

Emu8086能够生成纯二进制代码文件(*bin和基于软磁盘的启动程序。

纯二进制代码文件类似于com文件,但没有1 MB的限制。

由软磁盘启动时CPU读取软盘0面、0磁头、0扇区代码到内存0000H:7C00H处。

软磁盘是8086微机系统的主要组成部分,Emu8086可虚拟最多4个软磁盘,分别命名软磁盘0~软磁盘3,虚拟软磁盘与标准的1.4寸软磁盘一样,容量为1474560字节。

通过Emu8086的菜单可添加或删除软磁盘的数量,软磁盘的格式与IBM/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是基于Windows操作系统的仿真软件,同其他仿真软件一样,它的仿真对象与真实对象有着部分功能或属性上的差异,由于仿真系统需要处理大量的功能仿真
数据,没有对时间严格的监控,导致大部分仿真系统只侧重功能仿真,轻视或忽略时间的真实性,这些差异需要在实践过程中不断改善和克服,才能保证仿真对象的真实度。

通过实践,虚拟实验的不足之处体现在以下几个方面。

首先,Emu8086的仿真系统的运行速度与真实的8086系统不一样,而且由于运行仿真软件的计算机的性能有差异,导致仿真8086系统与实际的8086微机系统差异也不一致,在虚拟8086中代码运行1 s对应成真实的8086系统其运行时
间可能是数ms,简言之,虚拟实验的时序与实际时序有差异。

其次,Emu8086的编译系统不支持ORG、SEG等伪指令;对部分指令反汇编也不正确,如将指令LEABX,[200H]编译再反汇编后成了MOV BX,200H。

第三,系统提供的接口和外设不能完全满足教和学的要求,部分硬件功能过于简单,在接口和硬件中断实验中,采用了端口地址及中断号固定位置映射的方法,没有涉及系统总线的硬件仿真。

如果能够虚拟出系统总线,将总线加以开放并图形化,让使
用者完成系统总线与虚拟接口之间的连线,这样更利于学习者理解微机系统的硬件工作原理。

第四,在实际应用过程中,需要避免具有同一端口地址多个接口或外设同时运行否则会造成数据冲突,出现错误。

从微机应用系统的应用环境和特点来看,微机系统如何与千变万化的外部设备、外部世界相连,如何与它们交换信息,是微机系统应
用中的关键所在,培养一定的微机应用系统的分析能力和初步设计能力才是最终目的。

虽然,在短短的几个月的学习课程中,没有将课程学得非常透彻,但对其中的内容还是有很大的了解。

微机原理将会对以后的专业课学习发挥重大的作用。

在以后的学习生活和工作中将会得到更广泛的应用。

另外,通过这门课的学习,我懂得了,读书不能死读,不能整天学习这八股文,我们应该,通过学习基本知识,找出有用的价值所在。

然后,更进一步的学习,这样将学得更有效且更实用。

希望以后能够找到正确的学习方法不断的学习,能够更好的应用到今后的社会实践中去。

总结:
基于EMU8086可完成多项微机原理及接口实验,主要有汇编语言、并行I/O接口、硬件中断、软盘读写、系统启动代码、操作系统等实验。

虚拟的外设主要有五位七段数码管、并行接口打印机、移动障碍物机器人、并口数据收发器、步进电机、温度控制模型。

其中汇编语言、并行I/O接口、硬件中断是信息类本科生基本
的学习内容,数码管、电机等外设是实验中典型的外设。

通过这些基本接口和外设,可辅助学生学习微机原理及接口技术。

较复杂的接口和外设可组合出不同的拓展实验,提高学生的综合应用能力。

这些接口和外设所对应的实验在 4.08版本中验证通过。

EMU8086的工作界面为很简洁,它能模拟真实微处理器工作的每一步骤,通过单步调试显示指令执行后CPU内部寄存器、存储器、堆栈、变量和标志寄存器的当前值,操作简单直观,通过它我们可以很快掌握汇编程序设计和接口技术等知识。

在实验过程中也是我们学习到了很多知识,很多课堂上不是很了解的知识也得到了清晰地理解。

与实验室里的星研比较,EMU8086有着很大的优势,在编译、运行的步骤上尤为简单。

因此实验过程中,我们一直用的是EMU8086来编写实验代码,然后进行相应的分析,很少用到星研。

致谢:在微机原理课程的学习过程中,丁老师给我们细心讲解了一个个重要的知识点,并为我们一一解答了我们学习过程中遇到的问题及疑惑。

因此在本学期结束
之际,再三感谢丁老师给予我及同学们在学习上的帮助和支持!
参考文献:
[1] DA VID C. Virtualization for Win dows:A Techno logy Over-view [EB/OL]. (2009-08-03. /doc/f3f8b8a1a65177232f60ddccda38376bae1f e0cd.html /writ in g/white_ papers.php.
[2] 孙卫.虚拟技术综述[J].数字图书馆论坛,2009(7:34-38.
[3] 谷兆麟.基于EMU8086的微机系统的辅助学习方法[J].天津工程师范学院学报,2006,16(4:26-27.
[4] 戴梅鄂.微型计算机原理及接口技术[M]. 4版.北京:清华大学出版社,2003:1-20.
[5] 周荷琴,吴秀清微型计算机原理与接口技术.合肥:中国科技大学出版社,2008。

相关文档
最新文档