簡體   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