H2003031219_冯坷欣_简化的8088CPU逻辑功能的仿真实现.doc
【精品】VC++简化的8088CPU逻辑功能的仿真实现(源代码+论文)
收藏
资源目录
压缩包内文档预览:(预览前20页/共25页)
编号:1639473
类型:共享资源
大小:4.28MB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
50
积分
- 关 键 词:
-
精品
vc
简化
cpu
逻辑
功能
仿真
实现
源代码
论文
- 资源描述:
-
【精品】VC++简化的8088CPU逻辑功能的仿真实现(源代码+论文),精品,vc,简化,cpu,逻辑,功能,仿真,实现,源代码,论文
- 内容简介:
-
0 /器件位置200,501:0,20;0;( /管脚2:200,20;250,20;( /D60 /器件位置450,2301:310,0;310, /管脚2:320,0;320,) /30,0;330,) /40,0;340,) /50,0;350,) /60,0;360,) /70,0;370,) /80,0;380,:100,0;100,0:50,230;50,240;(1:20,0;20,2:450,150;460,150;(3:110,230;110,240;(4:40,0;40,) /20,0;120,) /0,0;60,) /60,230;160,240;(8:140,0;140,) /05,0;205,0:180,0;180,1:0,150;50;(2:265,0;265,3:240,0;240,4:430,0;430,825922,28500,30727:20,0;20,:40,0;40,:60,0;60,:80,0;80,:100,0;100,0;120,0;140,0;160,0;180,0:200,0;200,1:220,0;220,8:240,0;240,9:250,0;250,)20:260,0;260,)21:270,0;270,)22:280,0;280,)23:290,0;290,)24:300,0;300,)25:310,0;310,6:330,0;330,N)17:360,0;360,6:380,0;380,4:400,0;400,8:420,0;420,2:100,307;100,317;(3:200,307;200,317;(5:300,307;300,317;(:0,53;3;(55,420;55,2250 /器件位置450,2301:310,0;310, /管脚2:320,0;320,) /30,0;330,) /40,0;340,) /50,0;350,) /60,0;360,) /70,0;370,) /80,0;380,:100,0;100,0:50,230;50,240;(1:20,0;20,2:450,150;460,150;(3:110,230;110,240;(4:40,0;40,) /20,0;120,) /0,0;60,) /60,230;160,240;(8:140,0;140,) /05,0;205,0:180,0;180,1:0,150;50;(2:265,0;265,3:240,0;240,4:430,0;430,5:310,0;310, /管脚26:320,0;320,) /30,0;330,) /40,0;340,) /50,0;350,) /60,0;360,) /70,0;370,) /80,0;380,3:330,0;330,) /40,0;340,) /50,0;350,) /60,0;360,) /70,0;370,) /80,0;380,)39:100,0;100,)40:50,230;50,240;(= =LL LL of a a of in of up at to a or is It is LL It is a of of It ES be +to or to to to +. in LL to It as of It , to a a is + to of to or 分类号: U D C: 007)6114 级:公 开 编 号: 2003031219 成 都 信 息 工 程 学 院 学 位 论 文 简化的 8088辑功能的 仿真 实现 论文 作者 姓名: 冯 坷 欣 申请学位专业: 计 算 机 科 学 与 技 术 申请学位类别: 工 学 学 士 指导教师姓名(职称): 王中科 ( 讲 师 ) 论文提交日期: 2007 年 6 月 3 日 简化的 8088辑功能的 仿真 实现 摘 要 “虚拟实验平台 ”主要采用以 “软 ”代 “硬 ”和 “虚 ”、 “实 ”结合的设计思路,强调实用性,以最大限度地仿真真实的实验环境。主要实现了 “专用实验台 ”的虚拟化,将它 “搬 ”到了 “微机 ”的显示器上,而原有在微机上的实验操作环境和方法仍然保持不变。系统还提供必要的测试仪器和工具(如示波器等),以便在实验调试时能够对运行结果进行监视或测量,如输出电平或波形,这种虚拟的测试仪器和工具也在界面和操作方面做到了尽可能的逼真。本文介绍了该虚拟试验平台的 整体功能特点,主要介绍了 8088结构,工作方式,以及如何用 现这些具体功能的编程方法。并加入了一些程序片段,对完成工作中遇到的困难也做了些总结。 关键词 : 仿真试验平台 ; 8088封装 ; 寄存器 ; 移植 of 088 s to of to of of it to C in as in to be to of or as or in a as on of 088 to C of on 088目录 论文总页数: 251页 1 概述 1 1 1 拟化技术简介 1 2 2 2 编程 2 2 2 3 8088绍 3 概述 3 088 3 088 4 序 5 化的 8088 5 088 7 4 绍 7 7 绍 7 要的数据成员 7 要的成员函数 8 对 9 本内存系统 11 12 钟系统 14 15 5 具体移植实现 17 虚拟实验平台统一的器件模型 17 17 改 18 改插库 18 结 论 18 参考文献 19 致 谢 20 声 明 21 第 1 页 共 21 页 简化的 8088辑功能的 仿真 实现 1 概述 过去 当人们在开发一个项目时可能会遇到 以下问题 ( 1) 经常苦于经费不足,缺少足够的硬件开发板和完善的软件开发环境,相关的书籍对一些最新软件的分析还不够全面 ( 2)高层次的软件设计和开发一般不用过多考虑底层硬件的实现细节,如果直接处于一具体的硬件环境下,在开发和研究中可能会陷入硬件的具体细节中不能自拔,而不能把精力放到高层次的软件设计和开发上。 ( 3) 如果硬件开发环境不太稳定(这种情况经常见到),且对身体的硬件不是很了解,则可能在排除问题上花费大量不必要的时间,所以人们利用仿真技术来解决这些问题以到达节约人力物力的目的。 目介绍 拟化技术简介 从 1965年 044 机上首次实现虚拟技术以来,这一名词对于计算机世界来说已经不是一个新名词。 虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。 虚拟化技术与多任务以及超线程技术是完全不同的 。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的 当我们尝试着理解虚拟技术时,首先必须要理解 “ 虚拟 ” 的概念。 “ 虚拟 ” 这个词最早来源于光学,用于理解镜子里的物体。现在, “ 虚拟 ” 这个词已经经过演化,用来描述任何真实物体的模拟了,例如分区、虚拟机、虚拟内存、虚拟磁盘和虚拟现实。在讨论虚拟技术的时候,使用 “ 虚拟 ” 这个词,是因为我们希望虚拟机看起来和工作起来都和真正的机器一模一 样。这意味着,虚拟机并不是真正的机器,但是它能像真正的机器一模一样地工作。 实际上,从原理上看,所有虚拟技术虚拟的是指令集。所有的 备,不管是 务器还是存储,都有一个共同点:它们被设计用来完成一组特定的指令。这些指令组成一个指令集。对于虚拟技术而言, “ 虚拟 ” 实际上就是指的这些指令集。虚拟机有许多不同的类型,但是它们有一个共同的主题就是模拟一个指令集的概念。每个虚拟机都有一个用户可以访问的指令集。虚拟机把这些虚拟指令 “ 映射 ” 到计算机的实际指令集。 虚拟化技术也与目前 同样能达到虚拟效果的软件不同,是一个巨大的技术进步,具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面 。 按照虚拟层所处位置的不同,目前所有的虚拟技术大致可以分为硬件虚拟、逻辑虚拟、 第 2 页 共 21 页 软件虚拟和应用虚拟四种类型。 拟化技术简介 持虚拟技术的 过这些指令集, 比软件的虚拟实现方式会很大程度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容 件能够改进纯软件解决方案 。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了 计,进而使 够按通用标准进行编写,性能更加强大。另外,在纯软件 ,目前缺少对 64 位客户操作系统的支持,而随着 64位处理器的不断普及,这一严重缺点也日益突出。而 虚拟化技术除支持广泛的传统操作系统之外,还支持 64位客户操作系统。 虚拟化技术是一套解决方案。完整的情况需要 板芯片组、 软件的支持,例如 件或者某些操作系统本身。即使只是 持虚拟化技术,在配合 软件情况下,也会比完全不支持虚拟化技术的系统有更好的性能。 综合运用以前所学的专业知识,设计开发一个 简化的 8088能模拟的演示软件;在设计与开发中 ,将 存储器整合在一起的模型, 2. 实现 2 编程 用程序的 C+类集,以层次结构组织起来,其中封装了大部分数和 件,而基础的虚拟平台就是在次基础之上而开发 出的。使用 库和 +提供的高度可视的应用程序开发工具,可是应用程序开发变的更简单,开发周期极大地缩短,提高代码的可靠性和可重用性。它提供的类库对程序设计的高度抽象,使得程序员不用放在程序设计的具体细节上,而是对功能的扩展上,大大简化了开发工作。在开发过程中,我们所做的就是编写封装器件的程序, 由平台调用之来显示出控件,除了编写一些相关消息响应函数外,大部分工作由系统完成。 比较大的应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件 系统的工作。可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程 第 3 页 共 21 页 序 件中,会产生一些问题:一个缺点是增加了应用程序的大小,它会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统资源的浪费;另一个缺点是,在编写大的 序时,在每次修改重建时都必须调整编译所有源代码,增加了编译过程的复杂性,也不利于阶段性的单元测试。 统平台上提供了一种完全不同的较有效的编程和运行环境,你可以将独立的程序模块创 建为较小的 文件,并可对它们单独编译和测试。在运行时,只有当 序确实要调用这些 块的情况下,系统才会将它们装载到内存空间中。 这种方式不仅减少了 件的大小和对内存空间的需求,而且使这些 块可以同时被多个应用程序使用。 己就将一些主要的系统功能以 块的形式实现。 3 8088绍 概述 8088 是 8080 和 8085 的改进型,像 8080 和 8085 一样,它的指令是以 字节为基础构成的。它的性能的提高,主要依赖于采取了以下一些特殊措施。 1. 建立 4字节的指令预取队列 2. 设立地址段寄存器 3. 在结构上和指令设置方面支持多微处理器系统 一般处理器与 8088理器指令过程见图表 1 图表 1 一般处理器与 8088 处理器指令执行过程对比 (a)一般处理器指令执行过程; (b)8088处理器指令执行过程 088线及其功能 8088一块具有 40 条引出线的集 22所示。为了减少芯片的引线,有许多引线具有双重定义和功能, 采用分时复用方式工作,即在不同时刻,这些引线上的信号是不相同的,其管脚引线如图表 2。 取 指 执 行 取 指 执 行( a )取 指 执 行取 指 执 行取 指 执 行( b ) 第 4 页 共 21 页 图表 2 8088处理器芯片引线图 088内部结构 8088微处理器内部分为两个部分:执行单元 (总线接口单元 ( 如图 表 3所示 。 图表 3 80888088处理器中的 内部寄存器 用户能用指令改变其内容的,主要是一组内部寄存器,其结构 如图 表 4所示。 1)数据寄存器 G N 7A 5A 3A 1A T 3 93 83 73 63 53 43 33 23 13 02 92 82 72 62 52 42 32 22 11234567891 01 11 21 31 41 51 61 71 81 92 0( H I G H )M N / M H O L D ( L O C K )I O / M ( T / R ( E N ( L E ( Q S 0 )I N T A ( Q S 1 )T E S A D S E T( R Q / G R Q / G B H B C D B 通 用寄 存 器运 算 寄 存 器A L 执 行 部 分控 制 电 路A 位总 线 接 口 部 分 ( B I U )1 2 3 4指 令 队 列 缓 冲 器C S I 暂 存 器S C 8 位执 行 部 分 ( E U )输 入输 出控 制电 路2 0 位地 址 加 法 器1 6 位段 寄 存 器外 部总 线 第 5 页 共 21 页 8088有 4个 16位的数据寄存器,可以存放 16位的操作数。 2) 指针寄存器 8088的指针寄存器有两个: P。 堆栈指针寄存器,由它和堆栈段寄存器一起来确定堆栈在内存中的位置。 常 用于存放基地址,以使 8088的寻址更加灵活。 3)变址寄存器 用于指令的变址寻址。 4)控制寄存器 8088 的控制寄存器有两个: 指令指针寄存器,用来控制 指令执行顺序。 数据 寄存器 W H P S W 堆栈段附加段指针 寄存器指针 寄存器控制 寄存器段 寄存器通 用寄存器图表 4 8088内部结构 序 在 8088内存或接口间进行通信,如将一个字节写入内存一个单元 (或接口 ),或者从内存某单元 (或某接口 )读一个字节到 种读 (或 )写 的过程称为一个总线周期。 化的 8088型概述 本设计的设计目标是设计一个简化的 8088型,要求模型体现 8088主要功能,省略掉其很多繁琐的细节。基于此考虑,简化模型主要从如下几个方面对 8088 1 取消 8088 里的取指令、执行指令流水线 2 取消 8088 里的指令预取对列 3 取消 8088 里管脚的分时复用功能 4 将存储器与 合,简化存储器读写总线周期 5 对 8088 的管脚 也重新进行了设置。 管脚设置如图表 5 所示, 部功能结构如图表 6 所示 : 第 6 页 共 21 页 图表 4简化 8088脚分布 图表 5 简化 8088 第 7 页 共 21 页 088能的基本思路 令系统 和 时序逻辑 是本设计 难点 , 而我们解决难点采取的办法是移植虚拟机包含了 8088 下所有 令的仿真函数实现。而且还 专门 预留了一个插槽库供扩展 庞 杂,也很少文献资料,了解 4 绍 述 86的模拟器,它可以模拟几乎所有类型的 括 16位, 32位和 64 位( 一个 64 位的 以看作是 32 位和 16 位 超集。 工作方式包括以下两类: 1, 括实模式,保护模式和虚拟 8086模式三个子模式。 2, 括长模式和兼容模式。 在 来模拟 支持上面提到的每一种模式。 绍 要的数据成员 4,代表 用于 对称多处理 ) 的机器。 一个复杂的结构体 , 它表示一个 64位的通用寄存器 , 其主要成员有 : 表示一个完整的 64位寄存器。别 表示 64 位寄存器的高 32 位与低 32 位,这时候 64 位的寄存器被分割成 2个 32位寄存器使用。 示 6 位,此时寄存器被当作 16位寄存器使用。 别表示 高 8位与低 8位,此时 个 8位寄存器。 是一个代表通用寄存器的数组, 寄存器的个数,如果模拟的是 64 位处理器,那么 为 16,否则值为 8。 64 位时通用寄存器分别是 32 位时没有 15 。 分别是 64位模式和 32位模式下的指令指示器。 ; 第 8 页 共 21 页 表示段寄存器的结构 , 是表示了 6 个段寄存器的数组。分别是 S。 使用的内存的指针 。 用于 就是前面提到的 工作模式 , 主要有 5 种 , 分别是实模式 ( 16 位模式 ) 、 8086 虚拟模式 ( 32 位模式下的虚拟 16 位模式 ) 、保护模式 ( 32 位模式 ) 、兼容模式 ( 64 位模式下的虚拟 32 位 , 16 位模式 ) 和长模式 ( 64 位模式 ) 。分别使用宏 要的 成员函数 一个非常重要的函数,所有的指令函数都在这里执行。参数行的最大指令数。 取指令函数,计算指令的物理地址和其他相关信息,为后面的指令译码作准备。 这两个函数用于对指令进行译码,前者按指令长度 32 位译码,后者按 64 位译码,参数意义分别是指令的物理地址,空白指令结构和指令长度的最大字节数 i) 最长指令可以达到 15 个字节,因此指令可能出现 跨页,此时 + ()失败,必须调用 函数进行跨页取指译码 。 第 9 页 共 21 页 对 作流程的简易描述 图表 6 作流程示意图 函数(指令预取) 计算 /指令所在的线性地址 计算 /经过地址翻译得到的指令的物理地址 计算 /指令所在的线性页 (虚页 )的基地址 计算 / ( 指令所在页基 地址相对于 计算 / - 算 /页大小,值为 4096; 计算 / 0令所在的物理页的基地址 计算 /通过 计算得到的指令所在页在主机(真实机器)上的基地址 所谓指令预取,就是计算指令的物理地址和其他相关信息,为后面的指令译码作准备。 表 8是其功能流程: s ta r 处 理h a n d l e A s y n cE v e n t ( )取 指p r e f e t c h ( )f e t c h D e c o d e ( f e t c h P t r , i , m a x F e t c h )译 指执 行B X _ C P U _ C A L L _M E T H O D ( e x e c u t e , ( i ) )r e t u r n 第 10 页 共 21 页 图表 7指令预取功能流程图 函数(指令译码): 指令的结构用一个类指令结构 表示,它的两个主要成员函数下: *() ); /获取指令的类型,类型是由 *); /指令对应的执行函数指针 基本指令放在一个数组中: 12*2 第 0511项 : 16 5121023项 : 32其中包括了 3指令入口 ) 函数(跨页边界取指) i)因为指令跨页,不能将指令的首地址作为参数传给 (),因此设立临时变量 以保存在两页中取出的共 15个字节,并将 令的最大长度为 15字节,但具体每条指令的长度是不定的,在本次取指过程中为了实现跨页移动了 此返回之前必须将其复原,函数返回以后,在C P Pl a d d r +p A d d r& 0 x 00p A d d r A 20 e t H o s t M e m A d d r ()e i p F e t c h P t t r a n s l a t e _ l i n e a r ()物理页基地址页在主机上的基地址& 0 x 00l a d d r P a g eO f f s e t 0线性页基地址l a d d r -l a d d r P a g e O f f s e t 0e i p B i a s e f e t c h P t 11 页 共 21 页 里面,会根据实际的指令长度移动 本内存系统 主要文件: 主要类: 内存块基指针: * /经过对齐处理( 4) 内存大小 /以字节为单位 /以兆字节为单位 内存空间的分 配: 图 4存空间分配图 图表 8内存空间分布图 关寄器): G(表示 同) 1时,启用分页机制。 1时,使用 4M/2则使用 4 1时,启用 持 36位地址空间的物理内存)。 m e m s i z e + B I O S R O M S Z + E X R O M S I Z E + 40964 K 4 K a c t u a l _ v e c t o rv e c t o 4 K 12 页 共 21 页 函数的作用是在以指定的(线性)地址为起始地址处读 /写一块数据。参数意义分别是,访问的起始线性地址,读或写的数据长度,特权级别,操作方式(读、写)和数据缓冲区。 和 的功能是读 /写主机上的内存页。 函数 /数据块在第一页的起始地址 /数据块在第二页的起始地址 /数据块在第一页的长度 /数据块在第二页的长度 /数据块所跨越的页数( 1或 2) 含了经过翻译的地址结构和相关信息,函数 中的参数 是数据块的起始地址可能在页中的任意位置,所以数据块可能在一页内,也可能跨越两页,但不会更多 函数 /启用分页 ( 20; 如果是特殊内存段,用 # # ( 0!= 0 * = 1) ; #; #; # . 20; 如果是特殊内存段,用 第 14 页 共 21 页 #() / () # ( 0!= 0 = *= 1) ; #; #; # . 钟系统 在 定义了时钟系统的各种变量和功能函数。 宏: 义为 64, 4。 这个数组注册了所有的外设,并且存储了当时间片到达时对应的处理函数。 / 计时器是否正在使用 / 两次时钟中断的间隔指令数 / / 0=非运行状态 , 1=正在运行状态 . / 0=非持续型计时器 , 1=持续性计时器 / 产生时钟中断时的回调(中断处理)函数 / 回调函数所属的类实例 第 15 页 共 21 页 #2 / 计时器最大命名长度 / 计时器命名
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
2:不支持迅雷下载,请使用浏览器下载
3:不支持QQ浏览器下载,请用其他浏览器
4:下载后的文档和图纸-无水印
5:文档经过压缩,下载后原文更清晰
|