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