无法在 Visual Studio 2019 中运行汇编语言程序 - 无法启动程序,系统找不到指定的文件

Posted

技术标签:

【中文标题】无法在 Visual Studio 2019 中运行汇编语言程序 - 无法启动程序,系统找不到指定的文件【英文标题】:Can't run assembly language program in Visual Studio 2019- Unable to start program, system cant find file specified 【发布时间】:2021-01-03 05:08:42 【问题描述】:

我试图在 VS2019 中运行这个程序,但它一直弹出“无法启动程序,系统找不到指定的文件”。我看到我的讲师运行得很顺利,但是在我身上它只是不起作用。会不会是设置的原因?

''' INCLUDE Irvine32.inc .code main PROC mov eax,10000h ; EAX=10000h add eax,10000h; EAX=50000h sub eax,20000h; EAX=30000h

call DumpRegs exit main ENDP END main

【问题讨论】:

【参考方案1】:

您可能没有在构建中包含程序集源文件。右键单击源文件名,然后单击属性,然后将“从构建中排除”设置为否。然后设置自定义构建步骤。例如,如果源文件名为 x.asm,则用于调试构建:

command line: ml /c /Zi /Fo$(OutDir)\x.obj x.asm
output: $(OutDir)\x.obj

对于发布,相同,除了Zi:

command line: ml /c Fo$(OutDir)\x.obj x.asm
output: $(OutDir)\x.obj

我通常创建一个空项目,一旦创建目录,将源文件复制到目录中,然后“添加现有项”到项目中,然后执行上述步骤以使汇编器命令工作.

在某些情况下,VS2019 在首次安装时会默认构建程序集源文件,但如果不是这样,我还没有找到无需手动设置自定义构建步骤即可实现它的方法。

【讨论】:

为什么不简单地将 MASM 添加到构建自定义项中,然后将程序集文件添加到项目中?在过去十年中,VS 中的构建自定义支持 MASM/ML。右键单击项目,在菜单上选择build dependencies,然后选择build customizations,然后在 MASM 目标旁边打勾。如果您在启用 MASM 构建自定义之前添加了 ASM 文件,您可以在之后更改每个文件,使它们具有项目类型 Microsoft Macro Assembler,然后确保它们不会从构建过程中排除。 @MichaelPetch - 我在尝试使用旧版本的 VS 时遇到了问题。请注意,VS2010 是最后一个可以在 Win XP 或 Win XP X64 上运行的版本。我在 Win 7 上运行 VS2015,在 Win 10 上运行 VS2019。我假设构建 64 位程序会对 MASM 文件使用 ML64? 是的,MASM 构建自定义将根据目标平台使用 ML64 或 ML。最近的 VS 还支持该平台的 ARM 汇编器构建自定义。在这种情况下,OP 说他们正在使用 VS2019,并给出了我假设他针对 x86 的代码。 VS2015 肯定支持 MASM 构建自定义。我已经使用这个功能很多年了。

以上是关于无法在 Visual Studio 2019 中运行汇编语言程序 - 无法启动程序,系统找不到指定的文件的主要内容,如果未能解决你的问题,请参考以下文章