错误 A2105:预期:指令或指令程序集

Posted

技术标签:

【中文标题】错误 A2105:预期:指令或指令程序集【英文标题】:Error A2105 : Expected : instruction or directive Assembly 【发布时间】:2014-01-11 06:05:53 【问题描述】:

我正在使用 MASM 制作一个简单的消息程序。目前我在 Windows 8 64 位上运行 DOSBOX。我有一个文件夹 8086,其中包含 DEBUG、BIN2HEX、EDIT、EXE2BIN、LINK、MASM、TASM 和 TD 可执行文件。 MASM 不同于 ML 命令。

回到我的问题,当我尝试使用 masm Hello.asm 时。我得到了Error A2105 : Expected : instruction or directive。我在我的代码中使用了一些指令。

Hello.asm

.386
.model flat, stdcall
option casemap: none

extrn MessageBoxA@16 : PROC
extrn ExitProcess@4 : PROC

.data
    HelloWorld db "Welcome to Assembly Language!", 0
    MsgTitle db "Our First MessageBox", 0
.code
start:

    mov eax,0
    push eax
    lea ebx , MsgTitle
    push ebx
    lea ebx, HelloWorld
    push ebx
    push eax
    call MessageBoxA@16
    push eax
    call ExitProcess@4

end start

我不知道如何从这个 asm 创建 OBJ、LST、CRF。所以我就跳过这两个。

Object filenam [hello.OBJ] :
Source listing [NUL.LST]:
Cross-reference [NUL.CRF]:
hello.asm(3): error 2105 : Expected : instruction or directive

【问题讨论】:

您使用的是哪个版本的 MASM? 当 masm 询问您有关 .obj、.lst 和 .crf 的信息时,它是生成它们,您不必提供它们 【参考方案1】:

我不知道 MASM,但从错误消息中可以清楚地看出,汇编程序没有考虑这一行

option casemap: none

作为有效的指令或指令。所以你应该检查你是否使用了正确的格式。也许您需要删除分号后的空白。在任何情况下,您都可以简单地将其从编译代码的程序中删除。

【讨论】:

【参考方案2】:

指令或指令option casemap: none 在您的masm 版本中无效。所以如果你不知道为什么要使用option casemap: none,你应该检查一下,也许你可以删除它,然后你就可以正确编译代码了。

【讨论】:

以上是关于错误 A2105:预期:指令或指令程序集的主要内容,如果未能解决你的问题,请参考以下文章

错误表明我缺少 using 指令或程序集引用,但我没有....

错误 CS0246:找不到类型或命名空间名称“Player”(您是不是缺少 using 指令或程序集引用?) Unity [关闭]

错误1找不到类型或命名空间名称“Controller”(您是否缺少using指令或程序集引用?)

C# 未能找到类型或命名空间名称“Form1”(是不是缺少 using 指令或程序集引用?)

错误 1 未能找到类型或命名空间名称“DevComponents”(是不是缺少 using 指令或程序集引用?)

错误 1 未能找到类型或命名空间名称"dllimport"是不是缺少 using 指令或程序集引用