x86程序集创建Win32可执行文件NASM

时间:2013-09-12 17:36:57

标签: winapi assembly nasm

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

例如,这个简单的程序:

bits 32
mov eax,1
ret

我使用NASM编译了

nasm test.asm -o test.exe

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

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

2 个答案:

答案 0 :(得分:1)

[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

答案 1 :(得分:0)

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

原因是没有官方接口,但Windows附带的DLL以及既没有输入也没有输出的程序没有任何意义。