繁体   English   中英

x86程序集创建Win32可执行NASM

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM