在vs2017上编译C和asm

时间:2018-12-04 14:43:18

标签: c visual-studio assembly compiler-errors x86

我正在尝试在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

更新:已解决,这是权限问题。.试图将程序创建并构建到另一个驱动器中,成功了!

0 个答案:

没有答案