我想创建一个有效的Win32可执行文件,可以作为独立应用程序运行。
例如,这个简单的程序:
bits 32
mov eax,1
ret
我使用NASM编译了
nasm test.asm -o test.exe
然后我跑了那个程序。 它启动了NTVDM并告诉我“NTVDM CPU遇到非法指令”和一些技术细节,可能是转储和寄存器。
所以,我想用汇编语言创建一个独立的Win32应用程序。我不想像在DOS中那样创建COM文件。
答案 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以及既没有输入也没有输出的程序没有任何意义。