PA2: 指令模拟

请阅读实验须知/提交方法实验指南

Deadline:

  • PA 2.1: 2024.10.31 (此为建议的不计分 deadline)
  • PA 2.2: 2024.11.07 (此为建议的不计分 deadline)
  • PA 2.3: 2024.11.23 23:59:59 (以此 deadline 计按时提交奖励分)

Deadline 看起来很长,是因为真的需要那么多时间做……天上一日,地上一年。yzh 的 40 小时不是你们的 40 小时。

Online Judge 评测说明

评测过程与 PA1 类似。在这个实验中,我们会用 NEMU 模拟执行一段或简单或复杂的代码,使用 monitor 打印寄存器的数值,并据此判定实现的正确性。不用惊慌:如果你能在本地通过 Dummy,你就能通过至少一个 Easy 测试用例。

常见问题

  1. 你的 klib 需要在没有 libc 的环境上运行;因此任何 libc 的库函数都不能被调用 (甚至引用如 stdio.h 也可能发生问题)。如果你在其中加入了临时调试用的 printf 等,请你使用适当的预编译选项 (#ifdef 等),使 Online Judge 能忽略它们。
  2. 由于我们会检查 stdout,你向 stdout 的额外输出可能导致 Wrong Answer。请阅读代码,将日志输出到日志文件中。
  3. 我们编译时没有 differential test。
  4. LiteNES 会使用你实现的 klib 中的函数 (memcpy, printf 等)。我们会在每一帧之后输出该帧的 checksum,并检查某些关键帧的图形是否正确。因此确保你能正确看到 Super Mario Bros 的演示视频。