【发布时间】:2022-01-23 15:54:22
【问题描述】:
我被分配为8086 制作一个 2 遍汇编程序。我希望保持简单,现在只组装小程序。我发现.COM 格式很简单。但是我找不到文件格式的细节。
我还读到执行总是从100h 开始。那么如果MS-DOS(在我的情况下实际上是DOSBOX)那里已经存在系统程序,这不是问题吗?我是否需要在0h-100h 部分提供一些默认存根代码?
我只是想知道如何编写一个可在DOSBOX 上运行的.COM 文件。
【问题讨论】:
-
com 文件的字节 0 被加载到 0x100。操作系统在它之前填充 0-0x100(例如,使用命令行参数和一些信息和系统结构)。阅读 x86 实模式下的分段。
-
请注意,.COM 文件必须小于 64 KiB 才能正常工作。如果您的文件不是,则 DOS 版本之间的行为会有所不同,有些人会拒绝加载文件,而其他人可能会无论如何都加载它。