Yanyan's Wiki 软件工程研究入门 (2022)

PA2: 指令模拟

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

Soft deadline:

  • PA 2.1: 2021.10.11 (此为建议的不计分 deadline)
  • PA 2.2: 2021.10.25 (此为建议的不计分 deadline)
  • PA 2.3: 2021.11.07 23:59:59 (updated) (以此 deadline 计按时提交奖励分)

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

ICS2021-PA2 提交结果

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 的演示视频。
Creative Commons License    苏 ICP 备 2020049101 号