无法在 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 中运行汇编语言程序 - 无法启动程序,系统找不到指定的文件的主要内容,如果未能解决你的问题,请参考以下文章

在visual studio 2008中运行时,表单不显示更改

在 Visual Studio 2010 调试器中运行时不会显示 Windows 公用文件对话框

无法在 Visual Studio 2019 中使用诊断工具

无法在 Visual Studio 2019 中打开 Service Fabric 项目

Visual Studio 2019 MVC 项目模板无法编译

System.NullReferenceException 用于在 Windows 服务器 IIS 上运行但在 Visual Studio IIS Express 中运行时在本地运行的 .NET 服务