0

固定的; 这是固定代码(不做任何事情并崩溃,但它会组装,这就是重点):

.686P
.MODEL FLAT
.CODE
_START:
    MOV al, 255
END _START

我还发现我必须将/c开关与 ml 一起使用,然后与/SUBSYSTEM:CONSOLE.


刚刚重新发现了 x86 程序集和 MASM32,并且让自己重新熟悉了基础知识。因此,我编写了一个简短而毫无意义的程序,以查看是否可以组装任何东西:

.686P
.MODEL FLAT
.CODE
START:
    MOV al, 255
END

我跑了ml /coff test.asm,得到了这个输出:

Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.

 Assembling: test.asm
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

"test.obj"
"/OUT:test.exe"
LINK : fatal error LNK1561: entry point must be defined

我在网上看到 START 是入口点的名称。我做错了还是这是一个不同的问题?

提前致谢!

4

2 回答 2

1

该 END 指令用于设置入口点: http: //msdn.microsoft.com/en-us/library/wxy1fb5k (v=vs.80).aspx

所以 END 应该是 END START。入口点标签可以是任何有效的标签名称。

于 2012-10-03T21:48:38.837 回答
0

我没有 MASM,但通常入口点是_start:,而不是START:

请参阅此 MASM 示例程序

于 2012-10-03T21:45:37.570 回答