【问题标题】:Error A2105 : Expected : instruction or directive Assembly错误 A2105:预期:指令或指令程序集
【发布时间】: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 的信息时,它是生成它们,您不必提供它们

标签: masm directive


【解决方案1】:

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

option casemap: none

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-05-13
      • 2019-12-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多