gpt4 book ai didi

x86 - 与 6502 相比,模拟 x86 架构时会出现什么问题?

转载 作者:行者123 更新时间:2023-12-04 21:12:54 25 4
gpt4 key购买 nike

目前,我正在用 Java 制作 NES 模拟器。除了一些小问题外,我的 6502 内核工作 99%。问题是,我正在为 NES 模拟 6502,但我从来没有像对 PS1、N64 或 DOS 这样的东西那样对它感兴趣。我一直想模拟一个控制台/系统,它不仅能在屏幕上绘制一些简单的 2D Sprite ,还能做更多的事情,就像前面提到的系统一样。

我想问的是:与 6502 相比,是什么让像 x86 处理器这样的东西难以模拟?我唯一能想出的是巨大的 x86 指令集,而且 x86 模拟器必须更加高效地编程,而不是代码的可读性。我问这个是因为我看过 DosBox 源代码,并且与几乎所有 6502 开源模拟器相比,DosBox 的 x86 核心源代码对我来说甚至无法理解。当一个处理器所做的只是查找操作码列表并系统地执行它们时,为什么会有如此大的复杂性差异?

最佳答案

6502 和 8088/86 有点相似,都是 CISC 等。x86 有更多的指令,但像 6502 一样只是主题的变体。

如果您谈论的不仅仅是 DOS 仿真器,例如 80386 或更新版本,那么是的,这需要付出更大的努力。不仅是处理器,还有系统。基于6502的游戏系统周围没有太多东西,通常特定于平台,小行星,nes,c64等。你需要拿出一个bios然后是一个dos,我相信在这一点上是那里是免费的。还有很多8086系统都有的外设,显卡,硬盘等等。

许多 DOS 应用程序会直接与硬件对话,因此您要做的不仅仅是模拟 BIOS 调用。

将所有这些加起来,dos/x86 系统的工作量远远超过 6502。

您不必创建专为提高效率而设计的模拟器,不再需要(例如,对于 dos)。您正在查看的源代码(MAME 是一组处理器模拟器的良好源代码)很可能是为提高速度而设计的,而且许多代码几乎不可读。

从任何角度看,x86 都是一个令人痛苦的指令集。如果 6502 是你到目前为止所做的全部,我接下来会选择其他东西,除非很明显如何去做(听起来好像不是)。也许是固定长度的指令集,如 arm 或 mips(以及固定长度版本)。或者为了了解规模,做一个 z80 并在上面运行 space invaders 或 galaga 或其他东西。 (嗯,太空入侵者是 8080 吗?)(gameboy 中有 z80 的衍生产品)。

关于x86 - 与 6502 相比,模拟 x86 架构时会出现什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17911658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com