我正在尝试在VS2017上连接C和asm代码。 C主程序调用一个函数,并且该函数已定义到我的asm文件中。 文件名为“ main.c”,asm文件名为“ eser.asm”
如果我尝试在另一台计算机(Windows)上的VS上运行相同的代码,则效果很好
这是main.c文件
#include <stdio.h>
int sommalungstringhe(char *s1, char *s2);
int main()
{
char s1[255] = "simone e' il migliore";
char s2[255] = "chissa' a fare cosa";
printf("%d", sommalungstringhe(s1, s2));
getchar();
}
这是eser.asm文件
.586
.model flat
.code
_sommalungstringhe proc
push ebp
mov ebp,esp
push edi
push esi
push ebx
mov esi,0
mov edi,0
mov ebx,dword ptr[ebp+8]
mov ecx,dword ptr [ebp+12]
ciclo:
cmp byte ptr[ebx+edi],0
je azzera_edi
inc esi
inc edi
jmp ciclo
azzera_edi:
mov edi,0
jmp conta_seconda
conta_seconda:
cmp byte ptr[ecx+edi],0
je fine_ciclo
inc esi
inc edi
jmp conta_seconda
fine_ciclo:
mov eax,esi
pop ebx
pop esi
pop edi
mov esp,ebp
pop ebp
ret
_sommalungstringhe endp
end
我尝试编译它,这给了我一些错误。
当我尝试将其编译为单独的源文件时遇到两个错误:
Severity Code Description Project File Line Suppression State
Error MSB3721 The command "ml.exe /c /nologo /Zi /Fo"Release\eser.obj" /W3 /errorReport:prompt /Taeser.asm" exited with code 1. tmp_prj C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\BuildCustomizations\masm.targets 69
第二个错误是:
Severity Code Description Project File Line Suppression State
Error A1000 cannot open file : eser.asm tmp_prj \\mac\Home\Desktop\tmp_prj\MASM 1
我还配置了VS,将asm文件视为源文件。
我在具有并行功能的Macbook Pro上使用vs2017
更新:已解决,这是权限问题。.试图将程序创建并构建到另一个驱动器中,成功了!