【问题标题】:Does DOS fill memory after the .exe file at .exe start time?.exe 文件在 .exe 开始时 .exe 文件后 DOS 是否会填充内存?
【发布时间】:2020-06-24 18:13:46
【问题描述】:

我正在阅读https://stackoverflow.com/a/3723153/97248 关于 DOS 如何加载 .exe 文件的信息。 .exe 标头中有所需的最小内存(== 额外内存)字段(偏移量 10)。非零时,DOS在调用程序入口点之前是否用0填充这部分内存?

DOSBox 0.74-3 似乎用 0 填充它。

【问题讨论】:

  • 您可能需要对其进行测试(可能使用不同的 DOS 版本)才能确定。我的猜测是否定的。如果程序不需要将内存归零,这将浪费时间(在 8088 上需要很多毫秒),如果需要,它可以在其启动代码中自行完成。现代操作系统零内存以确保它不包含任何敏感内容,但在没有内存保护的机器上,这是没有意义的。

标签: exe dos


【解决方案1】:

答案是否定的。更多详细信息,包括手动零初始化额外内存 (.bss) 的汇编代码,请参见@RossRidge 评论中链接的答案:https://retrocomputing.stackexchange.com/questions/12027/did-dos-zero-out-the-bss-area-when-it-loaded-a-program/12030#12030

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多