【发布时间】:2014-01-21 08:44:01
【问题描述】:
我在哪里可以找到代码(可引导映像、ROM 转储、可执行文件)来测试 CPU 的所有功能以检查模拟器是否正确模拟所有内容?诸如故障、异常、异常指令、286 保护模式、调试寄存器行为等。 CPU 的几乎所有功能。
是否有针对各种 CPU 风格的 CPU 怪癖列表?我知道一些指令在 Intel 和 AMD 上的执行方式不同,但我想知道是否有一个很大的列表。
谢谢。
【问题讨论】:
我在哪里可以找到代码(可引导映像、ROM 转储、可执行文件)来测试 CPU 的所有功能以检查模拟器是否正确模拟所有内容?诸如故障、异常、异常指令、286 保护模式、调试寄存器行为等。 CPU 的几乎所有功能。
是否有针对各种 CPU 风格的 CPU 怪癖列表?我知道一些指令在 Intel 和 AMD 上的执行方式不同,但我想知道是否有一个很大的列表。
谢谢。
【问题讨论】:
x86 模拟器或模拟器的完整指令和操作数覆盖可能难以实现。 http://wiki.qemu.org/Testing 有一些图像,您可以尝试在启动时进行覆盖。他们的邮件列表也可能有助于探索如何先验地确定启动这些图像中的一个或另一个并在其上执行某些操作会得到什么样的指令和功能覆盖。
与bochs 相同。我发现了一个thread on their mailing list,表明他们可能有一些想法甚至可能对你有用的代码。
Intel Pin 和基于它的工具(如 PinPoints 和 SimPoint)可能有助于生成具有代表性的跟踪并获得良好(如果不一定是完美和完整)的指令集和 CPU 功能覆盖。
Agner Fog's site 和 http://www.sandpile.org/ 可能是发现特定 CPU 中古怪、未定义或错误行为的有用起点,尽管通过在这两个站点上快速搜索我无法找到更直接相关的链接。
无论你在做什么,祝你好运!
【讨论】: