本仓库是南京大学计算机科学与技术系所开设的课程 “计算机系统基础” 的编程作业,基于 C 语言模拟了简化的 i386 指令集。
PA 一共分为四个阶段。
- 数据的表示、存取与运算:模拟整数的运算、浮点数的运算。
- 程序的执行:解析 elf 文件的程序头表,装载程序;实现 i386 大部分指令的解析。
- 存储管理:cache 结构模拟,地址转换模拟;实现相关 i386 指令,根据段表结构进行地址转换;根据页表进行地址转换。
- 异常、中断与 I/O:实现相关 i386 指令,模拟中断处理过程;实现 in、out 指令并针对端口映射 I/O 实现最简单的串口驱动程序;读取内存时判断是否访问 mmio 内存片段并 编写 VGA 的内存显存映射
代码应运行在 32 位 linux 环境中。