将 .exe 转换为 .com

将 .exe 转换为 .com

我最近在我的笔记本电脑上下载了 MS-DOS 6,我希望能够在 cmd 上执行所有命令,但我需要将 .exe 转换为 .com,我会下载任何软件来执行此操作。

答案1

我认为您对 .com 和 .exe 扩展名的含义有点困惑。

  • .com 本质上是内存的映像,大小限制在 64K 以内(实际上更像是 0xFF00 字节,呃,65,280,从技术上讲,因为前 256 个字节用于 cmd 行和其他内容)
  • .exe 是一个链接程序,(可能)由库和代码、资源等部分组成,大小基本上是无限的,尽管存在物理内存限制)

两者的功能都与命令一样好,事实上,查看您的 DOS 子目录,您会发现一些分散的 .com 文件和一堆 .exe 文件。不要混淆问题,认为只有 .com 文件才是命令。这只是一个命名约定。

它确实与 MSDOS 的 CP/M 根源有关,因为程序大小被限制为 64k,而较大的程序必须将自身分页到内存中……这些被视为命令。但值得庆幸的是,我们已经超越了 CP/M 的限制……进入了一套全新的限制……但那是另一个故事。

希望这有帮助。

答案2

存在不同类型的 EXE 文件。有些可以在 MS-DOS 上运行,而有些则需要 Windows。可以在 MS-DOS 上运行的则不需要任何转换。

为 Windows 编译的 EXE 文件即使接受命令行参数并生成控制台输出,也无法在 DOS 上运行。它们依赖于 Windows 功能和 API(应用程序编程接口)才能正常工作。

如果您尝试在 DOS 上运行 Windows EXE 文件,您将收到以下消息:

This program cannot be run in MS-DOS mode.

答案3

所有其他答案都很好,除此之外,还可以告诉您,在 DOS 的旧时代,COM 可执行文件是加载在 L1 缓存中的,这是最接近 DOS 时代的多任务处理。

例如:Mouse.com,被加载到缓存中,那么您运行的所有其他后续程序都可以使用鼠标;

  • 386处理器可以支持16到64KB的缓存

  • 486 处理器中,8 KB 缓存直接集成在 CPU 芯片中。此缓存被称为 1 级或 L1 缓存,以区别于速度较慢的主板缓存或 2 级 (L2) 缓存。这些主板缓存要大得多,最常见的大小为 256 KB。

在 386、486 和 x86 的动荡时期,一些 dos 游戏无法在 486 上正确运行,因为没有足够的 L1 缓存来加载 386 时代所需的所有 COM,想想鼠标、声音、CDROM、MEMCACHE。例如,过了一段时间,您必须选择无声运行游戏才能使用鼠标玩游戏。

相关内容