Winapi x86程序集创建Win32可执行文件NASM
我想创建一个有效的Win32可执行文件,可以作为独立应用程序运行 例如,这个简单的程序:Winapi x86程序集创建Win32可执行文件NASM,winapi,assembly,nasm,Winapi,Assembly,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 _sta
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)
及
(或)
您选择的任何链接器都应该为您提供.exe
可以这样组装:
nasm -fwin32 file.asm (this should give you file.obj)
及
(或)
您选择的任何链接器都应该为您提供.exe文件,至少Windows XP拒绝加载不使用任何DLL文件的应用程序。到目前为止,我还没有用Windows7进行测试
原因是,除了Windows附带的DLL之外,没有正式的接口,而且一个既没有输入也没有输出的程序毫无意义。至少Windows XP拒绝加载不使用任何DLL文件的应用程序。到目前为止,我还没有用Windows7进行测试
原因是,除了Windows附带的DLL之外,没有正式的界面,而且一个既没有输入也没有输出的程序毫无意义。您可能需要阅读教程。要解决您的特定问题,您需要一个能够生成PE映像的链接器。请参阅是否尝试选择适合您的操作系统的输出格式?例如,
-f win32
切换以创建Windows的可链接对象文件。还有另一个示例:可能重复您可能需要阅读教程。要解决您的特定问题,您需要一个能够生成PE映像的链接器。请参阅是否尝试选择适合您的操作系统的输出格式?例如,-f win32
开关为Windows创建可链接的对象文件。还有另一个例子:可能的
ld -e _start file.obj