assembly 我无法使用.asm和MASM在VS2019中编译任何项目

9jyewag0  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(266)

你好,提前感谢你的帮助
我是VS 2019的新手,我必须现在开始,因为我的大学需要它。
我的导师给出的步骤:
1.创建新项目-> Windows桌面向导->(默认名称可选)
1.控制台应用程序
1.配置管理器选择x64(是的,它需要是64位)
1.构建依赖项->构建自定义->选择masm
1.添加新的->新项目->名为asm.asm的c++文件
我按照老师给出的步骤一步一步地开始一个新的项目,使用简单的a+b=c,但当试图编译该项目时,VS返回下面的行:

Build started...
1>------ Build started: Project: Project2, Configuration: Debug x64 ------
1>Assembling asm.asm...
1>D:\Visual\MSBuild\Microsoft\VC\v160\BuildCustomizations\masm.targets(70,5): error MSB3721: The command "ml64.exe /c /nologo /Zi /Fo"x64\Debug\asm.obj" /W3 /errorReport:prompt  /Taasm.asm" exited with code 1.
1>Done building project "Project2.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我的项目的.cpp文件包含:

#include <iostream>
using namespace std;
extern "C" __int64 sum(int a, int b);
int main(int argc, char* argv[])
{
    int a = 10;
    int b = 20;
    int c;
    c = sum(a, b);
    cout << "Sum = " << c << endl;
    system("PAUSE");
    return 0;
}

计算a+b=c的文件程序集文件asm.asm包含:

.CODE
_DATA SEGMENT
_DATA ENDS
_TEXT SEGMENT
PUBLIC sum
suma PROC
    movsxd rax, ecx
    movsxd rdx, edx
    add rax, rdx
    ret
sum ENDP
_TEXT ENDS
END

为什么我会得到一个构建错误,如何在Visual Studio 2019项目中解决这个问题?

jei2mxaa

jei2mxaa1#

你必须做三件事。
1.创建一个单独的.asm文件并在其中编写汇编代码。
1.右键单击您的解决方案,导航到【构建依赖关系】-【构建自定义设置】,并选中【masm】框。
1.右键单击您的.asm文件,进入【属性】-【项目类型】,选择【微软宏汇编器】。
现在您可以将汇编代码链接到C/C++代码。

相关问题