模拟运行MS的计算机

写模拟器一直让我着迷。 现在我想为IBM PC编写一个模拟器,并在其上运行MS-DOS(我拥有软盘映像文件)。

我在C ++和C方面有丰富的经验,熟悉汇编程序和CPU架构。 我也知道有成千上万的模拟器正在做我想做的事情,但我只会为了纯粹的喜悦而做这件事。

  • 我需要多少工作? (如果我的目标是启动DOS并用它创建一个文本文件,全部仿真)

  • 我应该效仿什么样的CPU? 我在哪里可以找到关于机器代码如何组织以及哪些操作码意味着什么的文档,所以我可以使用我的模拟器正确解压缩并执行它们?

  • MS-DOS是否仍在最新一代处理器上运行? 理论上它能够在64位AMD羿龙2处理器上搭配现代主板,硬盘,内存等吗?

  • 除了模拟CPU之外,还有什么可能是一个重要的因素(难度)? 我只想通过主机系统的控制台输出/输入文本到系统,没有声音或其他更高级的IO等。

  • 你写了一个模拟器吗? 你的第一个作品是什么? 它有多难? 你有什么特别的提示吗?

  • 提前致谢


    要知道从模拟器运行DOS需要什么,我认为最好的地方是转向已经重新实现DOS克隆的FreeDOS项目。 通过研究来源,你应该能够提出一份需求清单。

    关于操作码,您可以查阅X86操作码和指令参考,或英特尔文档。 您还应该考虑使用最新的处理器功能进行虚拟化。

    DOS应该仍然能够引导现代PC,但可能无法使用大部分硬件(由于缺少驱动程序或“OS”的固有限制)。

    如果你想完全模拟PC来运行MS-DOS(或克隆),我想你必须:

  • 解码和解释操作码
  • 模拟内存控制器
  • 模拟BIOS和VGA BIOS
  • 实现所需的BIOS系统调用
  • 免责声明:我没有写一个模拟器。


    由于MSDOS是纯粹的16位代码,因此它本身不能在64位处理器上运行。

    链接地址: http://www.djcxy.com/p/50555.html

    上一篇: Emulating a computer running MS

    下一篇: How does one use dynamic recompilation?