1

我想创建一个有效的 Win32 可执行文件,它可以作为独立应用程序运行。

例如,这个简单的程序:

bits 32
mov eax,1
ret

我使用 NASM 编译它

nasm test.asm -o test.exe

然后我运行了那个程序。它启动了 NTVDM,并告诉我“NTVDM CPU 遇到非法指令”和一些技术细节,可能是转储和寄存器。

所以,我想用汇编语言创建一个独立的 Win32 应用程序。我不想像在 DOS 中那样创建 COM 文件。

4

2 回答 2

2
[section] .text
    global _start
_start:
    mov eax, 1
    ret

可以这样组装:

 nasm -fwin32 file.asm              (this should give you file.obj)

 link /subsystem:windows /entry:start file.obj       

(或者)

 ld -e _start file.obj      

您选择的任何链接器都应该为您提供 .exe

于 2013-09-13T06:33:27.967 回答
0

至少 Windows XP 拒绝加载不使用任何 DLL 文件的应用程序。到目前为止,我还没有使用 Windows 7 进行测试!

原因是没有官方接口,只有 Windows 附带的 DLL,并且没有输入和输出的程序没有意义。

于 2013-09-13T13:56:56.217 回答