laocaiye 发表于 3 天前

为何不生成中间文件

我在DOSBOX中用命令masm编译asm文件时,为何不生成中间文件,比如LST和CRF文件。
例如: masm ptest(后面没有分号;)

FishC 发表于 3 天前

MASM 编译时为何不生成中间文件(LST、CRF)?

在 DOSBox 中使用 masm ptest 命令编译汇编文件时,如果没有生成 LST(列表文件)和 CRF(交叉引用文件),可能是以下原因之一:


[*]命令格式不完整:MASM 需要你在命令行中明确指定是否生成这些文件。比如在输入文件名后按回车,MASM 会提示你输入 LST 文件名和 CRF 文件名。如果你直接按回车跳过,它就不会生成。
[*]没有使用完整的命令行参数:你可以使用如下命令强制生成 LST 文件:
masm ptest.lst;
[*]分号的作用:在 DOS 下,分号 ; 表示“回车”,如果你在命令中加上分号,MASM 会自动跳过后续提示,默认不生成 LST 和 CRF 文件。
[*]MASM 版本差异:不同版本的 MASM 行为略有不同,有些版本默认不生成中间文件,除非你显式指定。


建议做法:
在 DOSBox 中运行 MASM 时,使用如下命令:


masm ptest;


然后在提示输入 LST 文件名时,输入 ptest.lst,在 CRF 文件名提示时输入 ptest.crf,这样就能生成中间文件了。

如果你希望自动生成这些文件,也可以写一个批处理脚本来简化操作。需要的话我可以帮你写一个。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

laocaiye 发表于 3 天前

用你提供的强制生成方法也不行,估计是你说的版本问题吧。

laocaiye 发表于 3 天前

使用这样的格式可以生成:masm ptest.asm,ptest.lst,ptest.crf
但是ptest.lst乱码
页: [1]
查看完整版本: 为何不生成中间文件