NEMU:NJU全系统x86仿真器的教学工具

下载需积分: 35 | ZIP格式 | 1.7MB | 更新于2024-12-10 | 111 浏览量 | 19 下载量 举报
4 收藏
资源摘要信息:"NEMU是一个专门为教学设计的全系统x86仿真器项目,由南京大学计算机科学与技术系ICS(计算机系统入门)班级负责开发。该项目作为编程作业,旨在通过实现一个简化版的x86计算机系统来帮助学生理解和掌握计算机体系结构的核心概念。NEMU的主要功能包括提供一个带有简单调试器的图形用户界面,实现x86指令集的子集,提供内存和寄存器的检查工具,支持符号表达式的评估,观察点和回溯功能,以及实现一个功能有限的CPU内核,能够运行在保护模式下,但不支持实模式和x87浮点指令。此外,NEMU还模拟了DRAM存储、两级统一缓存、TLB(翻译后援缓冲区)用于处理IA-32分段和分页,以及六个基本设备:计时器、键盘、VGA、串行端口、IDE硬盘和i8259 PIC程序可编程中断控制器。该仿真器使用C语言编写,这与该项目的标签相吻合。压缩包文件名NEMU-master表明了这是一个主版本的代码库。" 知识点详细说明: 1. ICS2016编程分配: ICS2016可能是一个课程代码,代表着某个特定课程的编程作业或项目。南京大学的计算机科学与技术系ICS课程设计了一个编程任务,旨在通过实际编程实践来加深学生对于计算机系统结构和编程的了解。 2. NEMU(NJU Emulator): NEMU是一个基于教学目的而设计的全系统x86仿真器。它允许学生在没有真实硬件的情况下模拟和测试他们编写的x86程序。NEMU的目的是作为一个教学工具,帮助学生更好地理解和掌握计算机硬件的工作原理。 3. x86指令集: NEMU实现了一个支持x86指令集的子集,这表明它能够模拟x86处理器的核心功能。x86指令集是广泛应用于个人计算机的一种指令集架构,NEMU实现了其中最常用的指令。 4. 保护模式: x86 CPU可以运行在多种模式下,保护模式是一种能够提供内存保护、多任务处理能力的模式。NEMU支持保护模式下的x86指令执行,但不支持实模式,实模式通常用于早期的DOS操作系统。 5. 浮点指令: NEMU不支持x87浮点指令集,这说明它不涉及浮点运算的高级功能,这可能是为了简化仿真器的设计,使之更适合作为教学工具。 6. 内存和寄存器检查: NEMU具备检查和测试CPU内部寄存器及内存状态的功能,这对于学习和调试低级程序非常重要。 7. 符号支持下的表达式评估: 仿真器支持符号表达式的评估,这对于开发和测试汇编语言程序以及理解程序在低级上的执行逻辑非常有用。 8. 观察点和回溯: 观察点功能允许开发者在程序执行到特定指令时暂停执行,并查看程序状态。回溯功能则提供了执行过程中的历史记录,有助于调试复杂的问题。 9. DRAM存储模拟: 动态随机存取存储器(DRAM)是一种常见的内存技术,NEMU模拟了DRAM存储,包括行缓冲区和突发模式。 10. 两级统一缓存: 仿真器实现了两级缓存系统,这是一种内存层次结构设计,用以提高存储系统的性能。 11. TLB和分段分页: TLB用于加速虚拟地址到物理地址的转换,而分段和分页是现代操作系统的内存管理技术,NEMU支持这些技术用于模拟IA-32架构的分段和分页机制。 12. 设备模拟: NEMU模拟了六个基本的计算机外围设备,包括计时器、键盘、VGA(视频图形阵列)、串行端口、IDE硬盘和i8259 PIC,这些设备是个人电脑的基本组成部分。 13. 编程语言C: 根据标签C,我们可以推断NEMU的主要实现语言是C语言,这是一种广泛用于系统编程、操作系统开发和嵌入式系统的编程语言。C语言的使用使得NEMU能够高效地操作硬件和系统资源。 14. 文件压缩包NEMU-master: "master"通常指一个项目的主分支或主版本,这表明NEMU项目有一个中央代码库,其他开发者可以从这个主版本中获取代码进行学习、修改和扩展。"NEMU-master"名称暗示了这是一个包含完整代码和必要文件的压缩包。

相关推荐

filetype
149 浏览量