nasmを使用して、次のアセンブリをコンパイルしています。ただし、Windows のコンソールでコードがクラッシュします。
C:\>nasm -f win32 test.asm -o test.o
C:\>ld test.o -o test.exe
section .data
msg db 'Hello world!', 0AH
len equ $-msg
section .text
global _WinMain@16
_WinMain@16:
mov edx, len
mov ecx, msg
mov ebx, 1
mov eax, 4
int 80h
mov ebx, 0
mov eax, 1
int 80h
この投稿によると。このmain
機能は Windows では使用できないため、 に置き換える必要がありますWinMain
。
したがって、エントリ ポイントが_start
またはの場合は、 に変更し、手順の最後で を に変更main
する必要があります。_WinMain@16
ret
ret 16
私の作業例:
section .text
global _WinMain@16
_WinMain@16:
mov eax, 0
ret 16