Visual studio 错误A2013:。模型必须位于此指令之前

Visual studio 错误A2013:。模型必须位于此指令之前,visual-studio,assembly,masm,irvine32,Visual Studio,Assembly,Masm,Irvine32,稍微修改一下MASM,我不知道这些错误是什么意思,也不知道我写的代码是否接近正确。正如目前所写的,它应该只是向用户打招呼,询问两个数字,然后说再见(在进行任何计算或任何特殊操作之前,尝试让一个框架工作) 以下是我遇到的错误: Error 1 error A2013: .MODEL must precede this directive c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1

稍微修改一下MASM,我不知道这些错误是什么意思,也不知道我写的代码是否接近正确。正如目前所写的,它应该只是向用户打招呼,询问两个数字,然后说再见(在进行任何计算或任何特殊操作之前,尝试让一个框架工作)

以下是我遇到的错误:

Error   1   error A2013: .MODEL must precede this directive c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   10  1   Assignment1
Error   2   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   11  1   Assignment1
Error   3   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   12  1   Assignment1
Error   4   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   13  1   Assignment1
Error   5   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   14  1   Assignment1
Error   6   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   15  1   Assignment1
Error   7   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   16  1   Assignment1
Error   8   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   17  1   Assignment1
Error   9   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   18  1   Assignment1
Error   10  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   19  1   Assignment1
Error   11  error A2013: .MODEL must precede this directive c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   21  1   Assignment1
Error   12  error A2034: must be in segment block : main    c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   22  1   Assignment1
Error   13  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   25  1   Assignment1
Error   14  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   26  1   Assignment1
Error   15  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   27  1   Assignment1
Error   16  error A2008: syntax error : edx c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   28  1   Assignment1
Error   17  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   29  1   Assignment1
Error   18  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   30  1   Assignment1
Error   19  error A2008: syntax error : edx c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   31  1   Assignment1
Error   20  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   32  1   Assignment1
Error   21  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   33  1   Assignment1
Error   22  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   36  1   Assignment1
Error   23  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   37  1   Assignment1
Error   24  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   38  1   Assignment1
Error   25  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   39  1   Assignment1
Error   26  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   40  1   Assignment1
Error   27  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   41  1   Assignment1
Error   28  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   42  1   Assignment1
Error   29  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   43  1   Assignment1
Error   30  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   48  1   Assignment1
Error   31  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   49  1   Assignment1
Error   32  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   50  1   Assignment1
Error   33  error A2008: syntax error : exit    c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   51  1   Assignment1
Error   34  error A1010: unmatched block nesting : main c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   52  1   Assignment1
Error   35  error MSB3721: The command "ml.exe /c /nologo /Zi /Fo"Debug\Assignment1.obj" /W3 /errorReport:prompt  /TaAssignment1.asm" exited with code 1.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\masm.targets  49  6   Assignment1

您需要在代码开头使用
.model flat
,在此之前可能还需要
.486
。我认为这将解决你几乎所有的问题

如果使用x64而不是x86作为平台,也可以避免这种情况。当您在代码中使用64位x寄存器时,您可能正在为x64编码

这确实绕过了那些错误,但现在我得到了不同的错误。附加在上面的评论中。@MarshallTigerus:不同的主题,新的问题。只要问一个新问题。这不利于未来的网民找到被OP改变的问题的答案。我在代码中添加了:.model flat.486,但现在我遇到了一个错误:错误1错误A2008:语法错误:edx c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm 29 1 Assignment1另一个愚蠢的问题,在visual studio继承人中,我应该将irvine32.inc移到何处,以便它可以在不添加额外路径的情况下实际找到它?通过将所有内容复制到工作目录中修复了它,因此回答了我自己的问题我在这里看不到任何使用
rdx
或其他64位寄存器的情况。这显然是将地址放入32位寄存器,如
mov-edx,OFFSET-intro\u 1
。我不建议将其组装为64位代码,因为Irvine32库本身是(毫不奇怪)32位的。
Error   1   error A2013: .MODEL must precede this directive c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   10  1   Assignment1
Error   2   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   11  1   Assignment1
Error   3   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   12  1   Assignment1
Error   4   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   13  1   Assignment1
Error   5   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   14  1   Assignment1
Error   6   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   15  1   Assignment1
Error   7   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   16  1   Assignment1
Error   8   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   17  1   Assignment1
Error   9   error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   18  1   Assignment1
Error   10  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   19  1   Assignment1
Error   11  error A2013: .MODEL must precede this directive c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   21  1   Assignment1
Error   12  error A2034: must be in segment block : main    c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   22  1   Assignment1
Error   13  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   25  1   Assignment1
Error   14  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   26  1   Assignment1
Error   15  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   27  1   Assignment1
Error   16  error A2008: syntax error : edx c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   28  1   Assignment1
Error   17  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   29  1   Assignment1
Error   18  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   30  1   Assignment1
Error   19  error A2008: syntax error : edx c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   31  1   Assignment1
Error   20  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   32  1   Assignment1
Error   21  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   33  1   Assignment1
Error   22  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   36  1   Assignment1
Error   23  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   37  1   Assignment1
Error   24  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   38  1   Assignment1
Error   25  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   39  1   Assignment1
Error   26  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   40  1   Assignment1
Error   27  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   41  1   Assignment1
Error   28  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   42  1   Assignment1
Error   29  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   43  1   Assignment1
Error   30  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   48  1   Assignment1
Error   31  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   49  1   Assignment1
Error   32  error A2034: must be in segment block   c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   50  1   Assignment1
Error   33  error A2008: syntax error : exit    c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   51  1   Assignment1
Error   34  error A1010: unmatched block nesting : main c:\Users\Marshall\documents\visual studio 2010\Projects\Solution1\Assignment1\Assignment1.asm   52  1   Assignment1
Error   35  error MSB3721: The command "ml.exe /c /nologo /Zi /Fo"Debug\Assignment1.obj" /W3 /errorReport:prompt  /TaAssignment1.asm" exited with code 1.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\masm.targets  49  6   Assignment1