我正在使用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
答案 0 :(得分:0)
我不知道MASM但是从错误消息中可以清楚地看到汇编程序不考虑这一行
option casemap: none
作为有效的指令或指令。因此,您应该检查是否使用了正确的格式。也许你需要在分号后删除空白。在任何情况下,您可以简单地从编译代码的程序中删除它。
答案 1 :(得分:0)
指令或指令option casemap: none
在您的masm版本中无效。因此,如果您不知道为什么使用option casemap: none
,则应该检查它,也许可以删除它,然后可以正确地编译代码。