论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

ia32逻辑功能仿真实现(论文+程序)

     第0~511项:      16bit mode 内容来自www.paper51.com

     第512~1023项:  32bit mode 内容来自论文无忧网 www.paper51.com

     (其中包括了fpu,x86-64,3DNOW,SSE等指令入口) 内容来自www.paper51.com

boundaryFetch()函数(跨页边界取指) http://www.paper51.com

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

内容来自论文无忧网 www.paper51.com

3.4.3 基本内存系统

内容来自www.paper51.com

主要文件:Memory.h, Memory.cc,Misc_mem.cc

内容来自论文无忧网 www.paper51.com

主要类:bx_mem_c http://www.paper51.com

内存块基指针:

内容来自www.paper51.com

Bit8u *actual_vector;//实际分配的内存块指针 copyright paper51.com

Bit8u *vector;          //经过对齐处理(4K大小整数倍 )

paper51.com

内存大小 内容来自www.paper51.com

size_t len;               //以字节为单位

copyright paper51.com

size_t megabytes;   //以兆字节为单位 

内容来自论文无忧网 www.paper51.com

内存空间的分配如图3所示: 内容来自www.paper51.com

    alloc_vector_aligned(size_t bytes, size_talignment) 内容来自www.paper51.com

paper51.com

                                        图3  内存分配图 copyright paper51.com

X86处理器的分页机制(相关寄器): 内容来自www.paper51.com

CR0:当CR0[PG](表示CR0寄存器的PG位,下同)=1时,启用分页机制。

copyright paper51.com

CR3:X86处理器通常使用多级页表,CR3中存放着最高级页表的基地址。

http://www.paper51.com

CR4:当CR4[PSE]=1时,使用4M/2M大小的页面,否则使用4K大小的页面;CR4[PAE]=1时,启用PAE模式(支持36位地址空间的物理内存)。 内容来自论文无忧网 www.paper51.com

------分隔线----------------------------
联系方式