欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    微机原理emu8086课程设计.docx

    • 资源ID:10073929       资源大小:267.42KB        全文页数:11页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微机原理emu8086课程设计.docx

    1、微机原理emu8086课程设计Emu8086的应用分析摘要:Emu8086是一个可在Windows 环境下运行的8086CPU汇编仿真软件.它集成了文本编辑器、编译器、反编译器、真调试、虚拟设备和驱动器为一体,并具有在线使用指南,这对刚开始学习汇编语言的人是一个很有用的工具.您可以在真器中单步或连续执行程序,其可视化的工作环境让使用者操作更容易。您可以在程序执行中动态观察各寄存器、标记位以及存储器中的变化情况。仿真器会在模拟的PC中执行程序,以避免程序运行时到实际的硬盘或内存中存取数据.此外,该软件完全兼容Intel新一代处理器,包括了Pentium、Pentium4的指令.关键词:Emu80

    2、86 微机原理 程序 文件一、软件启动 双击进入启动界面如图1所示,用户可以选择新建文本、程序示例、快速启动指南、最近使用文档. 图1 启动界面 Emu8086软件提供的实例中包含了几十种典型的程序代码,其中包括:数值计算、逻辑运算、屏幕显示、键盘输入、文件打印、马达控制、温度控制、交通灯控制等.在软件提供的快速指南中提供了多种在线帮助工具,包括:文件索引、8086CUP指令使用指南、系统中断调用列表以及用法等。用户可以通过该工具快速地掌握8086CPU指令体系和emu8086汇编真软件的使用。程序编辑结束后,点击模拟,即可进入模拟状态 : 点击运行之后即可用屏幕模拟器进行模拟,如:二、程序代

    3、码1、数值计算(1)十进制系统目前使用最多的是十进制。十进制系统有10个数字0,1,2,3,4,5,6,7,8,9.利用这些数字能表示任何数值,例如754这些数字是由每一位数字乘以“基数的幂累加而成的(上一个例子中基数是10 因为十进制中有十个数字). 位置对于每一个数字是很重要的。例如,你将上一个例子中的“7”放到结尾:547数值就成为:特别提醒:任何数字的0次幂都是1,0的0次幂也是1(二)二进制 计算机没有人类聪明(至少现在是这样),制造一个只有开关或者称为 0,1 两种状态的电子机器很容易.计算机使用二进制系统,只有两个数字 0, 1基地为2每一位二进制数称作一位(BIT),4 BIT

    4、 组成一个半字节(NIBBLE),8BIT组成一个字节(BYTE),两个字节组成一个字(WORD),两个字组成一个双字(DOUBLE WORD)(很少使用): 习惯上在一串二进制后面加上“b,这样,我们可以知道101b是二进制表示十进制的5。二进制10100101b表示十进制的165,计算方法如下:(三)十六进制系统 十六进制系统使用16个数字0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F基底是 16。 十六进制非常紧凑,便于阅读.将二进制转换为十六进制很容易,半字节(4bits) 对应一位十六进制如下表Decimal(base 10)Binary

    5、(base 2)Hexadecimal(base 16)000000100011200102300113401004501015601106701117810008910019101010A111011B121100C131101D141110E151111F 习惯上我们在一个十六进制数的后面加上 ”H,以便和其他进制区别, 这样我们就知道 5Fh是一个十六进制数表示十进制的 95。习惯上,我们也在以字母开头(从到)的十六进制数前面 加上0例如: 0E120h. 十六进制 1234h 等于4660:2、逻辑运算(1)与运算(AND) AND - 两个操作数各个位逻辑与运算。运算法则如下1 AN

    6、D 1 = 1 1 AND 0 = 0 0 AND 1 = 0 0 AND 0 = 0只有当两个操作数都是1时,运算结果才是1。(2)或运算(OR) OR - 两个操作数各个位逻辑或运算。运算法则如下 1 OR 1 = 1 1 OR 0 = 1 0 OR 1 = 1 0 OR 0 = 0 如果操作数中有1那么结果一定是1. (3)异或运算(XOR) XOR - 两个操作数各个位逻辑异或运算。运算法则如下 1 XOR 1 = 0 1 XOR 0 = 10 XOR 1 = 1 0 XOR 0 = 03、堆栈 堆栈是内存中用于保存临时数据的一片区域.当使用CALL指令时,堆栈用于保存过程的返回地址,

    7、RET指令能够从堆栈中取得该地址并使程序返回到那里。当使用INT指令,发生的也与此类似。 堆栈保存标志寄存器,代码段和偏移量。IRET指令用来从中断返回。 我们同样可以使用堆栈保存任何数据.对于堆栈的操作只有两条:PUSH - 将16位数值压入堆栈. POP - 将16位数值从堆栈中弹出PUSH 指令的使用方法:PUSH REGPUSH SREGPUSH memoryPUSH immediateREG(寄存器): AX, BX, CX, DX, DI, SI, BP, SP.SREG(段寄存器): DS, ES, SS, CS。memory(内存): BX, BX+SI+7, 16 位变量,

    8、等等。.immediate(立即数): 5, 24, 3Fh, 10001101b,等等.。POP 指令的使用方法:POP REGPOP SREGPOP memoryREG(寄存器): AX, BX, CX, DX, DI, SI, BP, SP。SREG(段寄存器): DS, ES, SS, (除了 CS)。memory(内存): BX, BX+SI+7, 16位变量, 等等。.。注意: PUSH and POP 都只操作16位数据!注意:在80186其极以后的CPU中才能使用 PUSH 立即数这样的指令堆栈使用LIFO(后进先出)算法,意思是:加入我们按照如下顺序压入数值: 1, 2, 3

    9、, 4, 5再使用POP指令弹出,结果将是 5 4 3 2 1 注意:有多少条PUSH指令就要对应有多少条POP指令,否则堆栈会被占用,无法正确返回操作系统。前面讲过使用RET指令返回操作系统,所以在程序开始时会将返回地址压入堆栈(通常都是0000h)IPUSH 和 POP指令在我们寄存器不够用的时侯特别有用,我们有如下技巧:将寄存器原始数值存入堆栈(使用 PUSH)使用寄存器从堆栈中弹出寄存器原先数值再放入寄存器(使用POP) 下面是一个例子: ORG 100hMOV AX, 1234hPUSH AX ; 将 AX 存入堆栈.MOV AX, 5678h ; 修改 AX 值POP AX ;返回

    10、 AX 原先的值RETEND堆栈的另外一个作用是交换数值,下面是一个这样的例子:ORG 100hMOV AX, 1212h ; 将 1212h 存入 AX.MOV BX, 3434h ; 将 3434h 存入 BXPUSH AX ; 将 AX 数值存入堆栈.PUSH BX ; 将 BX 数值存入堆栈POP AX ; BX原值存入AXPOP BX ; AX原值存入BXRETEND 之所以能这样是因为堆栈是用LIFO(后进先出)算法,当我们压入1212h和3434h之后,使用pop弹出我们首先得到的是3434h然后才是1212h。 堆栈的内存区域由SS寄存器(堆栈段),SP寄存器(栈指针)设置设置

    11、.一般来说操作系统在程序开始时会设置这些. PUSH 源 指令做如下工作:将SP寄存器减 2 将源的值写入内存SS:SP地址处 ”POP 目的 指令做如下工作:内存SS:SP地址处数值写入目的 将SP寄存器加2 由 SS:SP 指出的地址称作堆栈顶 对于COM文件,堆栈段通常就是代码段,堆栈指针设置为0FFFEh.在地址SS:0FFFEh处存放程序结束时RET指令返回地址。你可以点击stack按钮直接观察堆栈操作.堆栈顶由“”符号标记.4、宏 宏与过程很相似,但并不是完全相似。宏看起来像过程,但是当你的代码编译完成之后就消失了,取而代之的是真正的代码。如果你声明一个宏,而在代码中从来没有调用,

    12、编译器在编译过程中将忽略它.宏的定义 : name MACRO 参数,指令ENDM 与过程不同,宏要求定义参数并使用。例如: MyMacro MACRO p1, p2, p3 MOV AX, p1 MOV BX, p2 MOV CX, p3ENDMORG 100hMyMacro 1, 2, 3MyMacro 4, 5, DXRET上述代码在编译过程中将展开成:MOV AX, 00001hMOV BX, 00002hMOV CX, 00003hMOV AX, 00004hMOV BX, 00005hMOV CX, DX关于宏与过程需要注意如下要点: 当你想使用一个过程,你应该使用CALL指令,例

    13、如:CALL MyProc 当你想使用一个宏,你只需要输入它的名称。例如:MyMacro 过程是存在于内存中某一特定位值的,即使你调用这个过程100次,cpu只是执行内存中这一段的代码.在遇到RET指令后还会回到调用该过程的位值。这是通过使用堆栈保存返回地址来实现的。CALL指令占用3字节,无论调用多少次过程,最终输出的可执行文件并不会因此而显著增大。宏会在程序代码中展开。如果你使用相同的宏100次,输出的可执行文件将会变得越来越大,因为每一次调用宏中的指令都会插入到调用宏的位值. 你可以使用堆栈或者通用寄存器来向过程传递参数向宏传递参数的方法是在宏名称后面直接接上参数.例如: MyMacro

    14、 1, 2, 3 用ENDM指令结束宏就足够了标记过程结束,你需要在ENDP指令前加上过程名称 。 宏会直接在代码中展开,因此,如果你在宏中使用标记,当宏被调用2次或两次以上的时侯就会出现Duplicate declaration”(重复定义) 这一错误。为了避免该错误在变量,标记或者过程名称之前加上“local指令。例如:MyMacro2 MACRO LOCAL label1, label2 CMP AX, 2 JE label1 CMP AX, 3 JE label2 label1: INC AX label2: ADD AX, 2ENDMORG 100hMyMacro2MyMacro2R

    15、ET 微机的最基础语言-汇编语言,是计算机最基础的语言 。然而越基础的东西越重要,因此它在重大的编程项目中应用的最为广泛。就我个人理解,汇编是对寄存器的地址,以及数据单元进行最直接的修改。而在某些时候,这种方法是的最有效,也是最可靠的。但是它也有缺点,最重要的一点就是它本身较为复杂:对某个数据进行修改时,本来很简单一个操作会用比较烦琐的语句来解决,而这些语句本身在执行和操作的过程中,占用大量的时间和成本。因此,在一些讲求效率的场合,这种语言并不可取,所以可以适当对它进行取舍.掌握汇编语言对以后其他语言的学习有极大的帮助和促进作用。通过该课程的学习,基本上对微型计算机原理与接口技术有了一定的了解

    16、,对整个内容感觉还是比较晦涩难懂.但是对于其学习方法还是有一定的掌握。 EMU8086 的工作界面很简洁,它能模拟真实微处理器工作的每一步骤,通过单步调试显示指令执行后 CPU 内部寄存器、存储器、堆栈、变量和标志寄存器的当前值,操作简单直观,通过它我们可以很快掌握汇编程序设计和接口技术等知识。在实验过程中也是我们学习到了很多知识,很多课堂上不是很了解的知识也得到了清晰地理解。与实验室里的星研比较,EMU8086有着很大的优势,在编译、运行的步骤上尤为简单。三、鸣谢 感谢丁老师的教授和指导,通过认真的学习,我大概的了解了一些芯片,例如8253、8255、8259A等芯片。在学习过程中,丁老师也给我们细心讲解了一个个重要的知识点,并为我们详细解答了我们学习过程中遇到的问题及疑惑。在本学期结束之际,我再次感谢丁老师给予我及同学们在学习上的帮助和支持!


    注意事项

    本文(微机原理emu8086课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开