Emu8086在微机原理与接口技术中的应用.doc_第1页
Emu8086在微机原理与接口技术中的应用.doc_第2页
Emu8086在微机原理与接口技术中的应用.doc_第3页
Emu8086在微机原理与接口技术中的应用.doc_第4页
Emu8086在微机原理与接口技术中的应用.doc_第5页
全文预览已结束

下载本文档

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

文档简介

Emu8086在微机原理与接口技术中的应用摘要:微机原理与接口技术是电子系专业必修的一门专业基础课,是我们学习后续课程、毕业设计和今后工作的重要技术基础,其重要性不言而喻。但由于该门课程对实践动手能力要求高,涉及的信息量大、知识点多、教学内容较抽象,,对我们来说学好理解透并不容易,对于微机原理学习中存在的这些问题,可以用EMU8086仿真软件来解决,Emu8086是学习微机原理(汇编语言)必不可少的工具,通过实验的上机使我们更加了解汇编,最终能够熟练掌握。接下来会介绍EMU8086的用法和一些指令常识,并通过两个实例说明了该软件在汇编程序设计和接口技术方面的应用。关键词:微机原理;EMU8086;应用;寄存器正文:Emu8086是学习微机原理(汇编语言)必不可少的工具,它结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。该软件包含了学习汇编语言的全部内容,可以辅助学习微型计算机的知识。而通过实验的上机会使我们能更加了解汇编,最终能够熟练掌握。一、emu8086简介emu8086是8086微处理器的仿真软件,完全兼容Intel和Amd系列,内部集成了汇编程序编译器、连接器和丰富的参考资料、例程、学习指南等。该款软件可模拟真实微处理器运行程序的详细步骤,不仅能够显示寄存器、存储器、堆栈、标志寄存器以及变量的值,而且还可通过双击鼠标来改变存储器的值。而emu8086的工作界面为纯WINDOWS,界面友好,由菜单栏、快捷按钮栏和用户工作区构成,它能模拟真实微处理器工作的每一步骤,通过单步调试显示指令执行后CPU内部寄存器、存储器、堆栈、变量和标志寄存器的当前值,操作简单直观,通过学习它可以很快掌握汇编程序设计和接口技术等知识。这个模拟器是在一台虚拟的电脑上运行程序的,它拥有自己独立的“硬件”,这样你程序就同诸如硬盘与内存这样的实际硬件完全隔离开,动态调试(DEBUG)时非常方便8086的机器代码同INTEL下一代微处理器完全兼容,包括Pentium II 和 Pentium 4,这意味着8086代码具有很广泛的应用范围,它在老式的和最新的计算机系统上都能工作8086指令的另外一个优点是它的指令集非常小,这样学起来会容易得多。Emu8086同主流汇编程序相比,语法简单得多,而且能生成在任何能兼容8086机器语言的代码。二、emu8086的使用1在开始菜单选在它的图标,或者直接运行Emu8086EXE2在FILE菜单中选择SAMPLE3点击Compile and Emulate按纽(或者按快捷键F5)4点击Single Step按纽(或者按快捷键F8),可以查看代码如何运行Emu8086,可在工作区输入并编辑源程序。单击工具栏上的“Emulate”按钮,便会自动完成对源程序的编译和连接;如无错误,将会进入指令调试界面。通过该软件提供的单步调试方式,可以方便观察当时寄存器值和状态。不仅如此,系统还可提供机器码、反汇编指令和指令地址,非常直观、便捷。它还能模拟真实微处理器的每一步骤,并显示内部寄存器、存储器、堆栈、变量和标志寄存器,而且其中任何一个值都可通过鼠标双击来改变。同时它还可虚拟I/O 接口,以及屏幕、电机、红绿灯、LED 等外部设备。微型系统实验包括汇编语言实验、硬件接口实验、硬件中断实验、软盘实验以及操作系统实验等几个部分。三、与微机原理的衔接1、寄存器 在8086CPU有8个通用寄存器,每一个寄存器都有自己的名称: AX 累加寄存器,BX 基址寄存器,CX 计数寄存器,DX 数据寄存器, SI 源变址寄存器,DI 目的变址寄存器,BP 基址指针寄存器,SP 堆栈寄存器。在编程中,各通用寄存器的具体用途是由自己决定的,如CS 代码段寄存器,用来存放当前正在运行的指令;DS数据寄存器,用来存放当前运行程序所用的数据;ES 附加段寄存器,由程序员决定用途;SS 堆栈寄存器,指出堆栈所在区域,还有指令指针寄存器等。而两个寄存器生成的地址被称为有效地址 。默认下,BX, SI 及 DI 与 DS协同工作,BP SP 与 SS 寄存器协同工作。其余的通用寄存器不能形成有效地址。同样,尽管BX可以形成有效地址,但是BH BL不能。IP 始终同CS 协同工作,指出当前执行的指令。 寄存器的主要目的是保存数值(变量)。4个通用寄存器(AX, BX, CX, DX) 在使用时分为两个8位寄存器。当修改其中任意8位值,整个16位寄存器的值同样改变。同样对于其他的3个寄存器,“H”表示高8位,“L”表示低8位。寄存器在CPU内部,访问中它们速度远远超过内存。因为,访问内存需要经过系统总线,所以时间要长一些。而访问寄存器中的数据几乎不需要时间。于是,编程中,应当尽量在寄存器中保存数据。虽然寄存器很小,并且这些寄存器都有具体用途,但他们依然是存放计算中临时数据的好地方。在emu8086中,程序运行后会出现相应对话框,各类寄存器就会出现在对话框左边,执行相应操作会看到它们内容的变化情况。2、寻址方式可以通过BX, SI, DI, BP四个寄存器来寻址。通过计算符号中的值,我们可以访问到不同内存单元的值。偏移量可以是一个立即数或者是一个变量的偏移,或者二者兼备。偏移量可以在符号里面或者外面。偏移量是一个有符号数,可以是正数或者负数。默认下,DS 寄存器应用在除了BP寄存器之外的所有物理地址计算中,寄存器是和SS寄存器一起工作的。 3、调用中断中断是一系列功能调用,这些功能调用使得编程更加容易,包括硬件中断和软件中断。硬件中断是微机系统的重要组成部分。硬件中断通常由外设触发,执行特定的中断服务程序。硬件中断严格受硬件中断控制标志 IF 位的控制,当 IF 为 0时禁止中断,为 1 时打开中断。Emu8086 实现硬件中断的机理是,它将 256 个中断(0255 号)的中断请求标志存放于一个 256 字节的二进制文件 Emu8086.hw,一个中断号对应的请求标志,此标志占用一个字节,该字节为 0 表示该中断无请求,为非零时表示该中断有请求。在中断打开的情况下,系统不断扫描保存Emu8086.hw 中的请求标志,当某个中断号对应的标志字节为非零时,系统自动到中断向量表(内存 0000003FH)查找该中断的中断向量,转向该中断服务程序执行,并且将 Emu8086.hw 中的对应标志字节清零。CLI 指令用来关闭中断,STI 用来打开中断,无论在整个程序还是硬件中断程序执行过程中,硬件中断都可设置为打开或关闭状态。例如,主程序初始化代码用 STI 打开中断,主程序在执行过程中,如果某虚拟外设将 Emu8086.hw 中第2 个字节触发为 01H,这时第 02H 号中断就被触发,假设 02 号中断向量为 1200H:0100H,则 CPU 保护好主程序的现场,转向 1200H:0100H 处执行中断服务程序,之后恢复现场,返回主程序。控制一个软件中断,则需要使用INT指令。例如INT 25H,是用来实现对磁盘指定扇区进行读操作。在调用一个中断的子功能之前,需要设置AH寄存器。每一个中断最多可以拥有256个子功能。一般情况下使用AH寄存器,但是一些情况下可能使用另外的寄存器。通常,其他的寄存器是用来传递数据和参数的。4、控制程序控制程序走向是非常重要的事情,它是你的程序根据条件作出判断,跳转到相应的位值。无条件跳转控制程序转向的最基本的指令是JMP。 5、堆栈 堆栈是内存中用于保存临时数据的一片区域,当使用CALL指令时,堆栈用于保存过程的返回地址,RET指令能够从堆栈中取得该地址并使程序返回到那里。当使用INT指令,发生的也与此类似。堆栈保存标志寄存器,代码段和偏移量。四、实际应用例、将两个16位无符号二进制数相乘1)打开EMU8086,在用户工作区输入源程序。DATA SEGMENT ;数据段 D1 DW 1234H D2 DW 5678H P1 DD ? P2 DD ?DATA ENDSSTACK SEGMENT STACK STACKSTT DB 100 DUP(?)TOP EQU LENGTH STTSTACK ENDSCODE SEGMENT ASSUME CS:CODE,DS;DATA,SS:STACKMAIN PROC FARSTART: MOV AX,STACK ;初始化SS,SP MOV SS,AX MOV SP,TOP PUSH DS SUB AX,AX ;返回DOS用 PUSH AX MOV AX,DATA ;初始化DS MOV DS,AXL1: MOV AX,D1 ;D1*D2,积的高位在DX,低位在AX MUL D2 MOV BX,OFFSET P1;积P2和P1所指向的存储单元 MOV BX,AX MOV BX+2,DX RETMAIN ENDPCODE ENDSEND START(2)将输入的源程序存盘,然后点击Emulate按钮,EMU8086自动完成对源程序的编译、连接,若有错则给出错误信息。正确连接后,自动进人到指令的调试界面。(3)在该窗口单击single step按钮可方便地观察到指令单步执行后CPU内部所有通用寄存、段寄存器、标志寄存器和算术逻辑单元ALU中的值和数据的传递,还可看到汇编后生成的机器码及每条指令在内存中所占存储单元的物理地址,非常形象直观地展示了CPU工作的状态变化和工作原理。用户也可以单击rnn按钮运行该汇编程序。五、总结 微机原理作为电气信息类的一门基础课,其重要性是不言而喻的,而emu8086软件包含了学习汇编语言的全部内容,这对学习汇编语言的我们来说非常有帮助,若在该门课程的学习中能灵活运用EMU8086仿真软件进行汇编学习,这样可很好的理解和消化所学过的知识,可以很快的提高我们的汇编能力。EMU8086 的工作界面为很简洁,它能模拟真实微处理器工作的每一步骤,通过单步调试显示指令执行后 CPU 内部寄存器、存储器、堆栈、变量和标志寄存器的当前值,操作简单直观,通过它我们可以很快掌握汇编程序设计和接口技术等知识。在实验过程中也是我们学习到了很多知识,很多课堂上不是很了解的知识也得到了清晰地理解。实践与理论相结合!六、致谢在微机原理课程的学习过程中,老师给我们细心讲解了一个个重要的知识点,并且严格要求我们,使我们对于汇编语言不再陌生,能够用简单的汇编语言进行编程。并且在实验中

温馨提示

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

评论

0/150

提交评论