Visual Studio 2015汇编语言项目语法错误

时间:2017-01-30 01:26:29

标签: visual-studio-2015 x86 masm

我正在尝试使用Visual Studio 2015,这是我第一次上课。我已经使用了一些不同的教程并多次重新下载了visual studio,但我仍然遇到同样的问题。

顶部的注释(前两行)用红色加下划线,错误信息显示,"此声明没有存储类或类型说明符。" 当我开始搞乱Visual Studio但整个周末都没有找到解决方案时,我假设我在设置中弄乱了一些东西。有没有人看到这个或有任何想法可能会发生什么?

以下是我使用的示例代码的副本:

; AddTwo.asm - adds two 32 - bit integers.
; Chapter 3 example

.386
.model flat,stdcall
.stack 4096

ExitProcess proto,dwExitCode:dword
.code

main proc
    mov eax,5
    add eax,6               
    invoke ExitProcess,0
main endp
end main

1 个答案:

答案 0 :(得分:0)

将文件类型更改为.asm,例如example.asm。创建一个空项目并将.asm文件添加到项目中。在项目窗口中,右键单击.asm文件名,然后单击属性,然后添加以下自定义构建步骤:

debug build命令行:

ml /c /Zi /Fo$(OutDir)\example.obj example.asm

发布构建命令行:

ml /c /Fo$(OutDir)\example.obj example.asm

调试和发布构建输出文件:

$(OutDir)\example.obj

示例asm文件:

        .586p
        .model  flat,c
        .data           ;  initialized data
        .data?          ;uninitialized data
        .stack  4096
        .code
main    proc    near
        mov     eax,5
        add     eax,6
        xor     eax,eax
        ret
main    endp
        end

注意 - 如果您使用的是Visual Studio 2015,则printf现在是包含文件的一部分,并且实际上是在C / C ++文件中内联的。这使得从asm调用printf成为问题。一种解决方案是使用C / C ++和asm文件创建一个项目,使用C / C ++文件生成printf。