[英]x86 assembly create Win32 executable NASM
我想创建一个有效的Win32可执行文件,可以将其作为独立的应用程序运行。
例如,这个简单的程序:
bits 32
mov eax,1
ret
我使用NASM编译了
nasm test.asm -o test.exe
然后我运行了该程序。 它启动了NTVDM,并告诉我“ NTVDM CPU遇到非法指令”和一些技术细节,可能是转储和注册。
因此,我想用汇编语言创建一个独立的Win32应用程序。 我不想在DOS中创建COM文件。
[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
至少Windows XP拒绝加载不使用任何DLL文件的应用程序。 到目前为止,我尚未使用Windows 7进行测试!
原因是没有正式接口,但Windows附带了DLL,并且既没有输入也没有输出的程序毫无意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.