【发布时间】:2011-04-12 13:14:20
【问题描述】:
MS-DOS 采取哪些步骤将 COM 或 EXE 文件加载到内存中?网上是否还有关于这是如何发生的参考资料?我能想到的最好的可能是指 dosbox 源。
【问题讨论】:
-
问dos原作者帕特森:dosmandrivel.blogspot.com
标签: executable dos
MS-DOS 采取哪些步骤将 COM 或 EXE 文件加载到内存中?网上是否还有关于这是如何发生的参考资料?我能想到的最好的可能是指 dosbox 源。
【问题讨论】:
标签: executable dos
当 command.com 被要求执行一个 .com 或 .exe 文件时,它会调用中断服务 21h/AH=4B,即 EXEC 服务。由调用程序决定:
当中断 21h 被调用时(这对我来说是模糊的):
对于 exe:
对于 com:
程序现在应该正在执行。
注意事项:
在 Microsoft 的 KB 文档“定位可执行文件的优先顺序”中,它提到了 使用“MS-DOS EXEC 功能(中断 21h 服务 4Bh)”来执行 .com 和 .exe 文件 http://support.microsoft.com/kb/35284
所以我们可以查看 Ralph Brown 在 Int 21/AH=4Bh 上的中断列表
以及使用示例:
和dos exe头格式:
(这是基于一些谷歌搜索,所以请随时添加建议)
【讨论】: