网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > 计算机其他语言 > 正文

IA32的逻辑功能仿真实现

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/09

本文主要为广大网友提供“IA32的逻辑功能仿真实现”,希望对需要IA32的逻辑功能仿真实现网友有所帮助,学习一下!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

3 相关知识介绍··· 2

3.1 CPU虚拟化技术··· 2

3.2 VC++6.0及MFC介绍··· 3

3.3 动态连接库 DLL· 3

3.4 bochs介绍··· 3

3.4.1 BX_CPU_C的数据成员··· 4

3.4.2 BX_CPU_C 类对CPU工作流程的简易描述··· 5

3.4.3 基本内存系统··· 8

3.4.4 内存的访问··· 10

3.4.5 Bochs 时钟系统··· 10

4 具体移植实现··· 12

4.1虚拟实验平台统一的器件模型··· 12

4.2 CPU中可视化器件的设计··· 13

4.2.1 运算部件··· 13

4.2.2 寄存器组··· 13

4.3 CPU类的主要功能及实现方法··· 14

4.3.1 CPU核心功能采用调用bochs里的相关库来实现··· 14

4.3.2 修改cpu_loop· 14

4.3.3 修改插槽库stubs· 15

5 仿真效果··· 15

5.1 测试平台的外观··· 15

5.2 器件的显示··· 16

5.3 对器件引脚输入信号

fetchDecode()函数(指令译码):

指令的结构用一个类指令结构bxInstruction_c 来表示,它的两个主要成员函数下:

void (BX_CPU_C::*ResolveModrm) (bxInstruction_c *) BX_CPP_AttrRegparmN(1);

     //获取指令的类型,类型是由bochs定义的

void (BX_CPU_C::*execute)(bxInstruction_c *);

     //指令对应的执行函数指针

基本指令放在一个数组中:

     static BxOpcodeInfo_t BxOpcodeInfo[512*2]

     0~511:       16bit mode

     512~1023:  32bit mode

     (其中包括了fpux86-643DNOW,SSE等指令入口)

 

boundaryFetch()函数(跨页边界取指)

void boundaryFetch(Bit8u *fetchPtr, unsigned remainingInPage, bxInstruction_c *i)因为指令跨页,不能将指令的首地址作为参数传给fetchDecode()/fetchDecode64(),因此设立临时变量fetchBuffer,用以保存在两页中取出的共15个字节,并将fetchBuffer作为译码的参数。指令的最大长度为15字节,但具体每条指令的长度是不定的,在本次取指过程中为了实现跨页移动了RIP,因此返回之前必须将其复原,函数返回以后,在cpu_loop()里面,会根据实际的指令长度移动RIP

Bit32u dtranslate_linear(bx_address laddr, unsigned pl, unsigned rw)

Bit32u itranslate_linear(bx_address laddr, unsigned pl)

translate_linear中,参数的意义分别是线性地址值,特权级别,当前操作的访问方式(读、写),操作类型(数据,指令),返回值是翻译后的物理地址。dtranslate_linearitranslate_linear分别实现数据地址和指令地址的翻译,都是通过调用translate_linear实现的。

Bit32u用到的局部变量:

bx_address pte, pde, pdp, pml4; 分别表示页表项,页目录表项,页目录指针表项和PML4表项,这些表项分别包含了本次翻译的页,页表,页目录表,页目录指针表在内存中的基地址。

Bit32u pte_addr, pde_addr, pdp_addr, pml4_addr; 分别表示本次翻译中页表项,页目录表项,页目录指针表项以及PML4表项自身所在的绝对地址(物理地址)。

Bit32u ppf, poffset, paddress; 分别表示物理页框地址(物理页的基地址),页内偏移和经过翻译后的物理地址。

 

本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT

本文选自计算机毕业设计http://myeducs.cn
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

原创论文

设为首页 | 加入收藏 | 论文首页 |原创论文 |
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师