私はnasmを使用して、次のアセンブリをコンパイルしています。しかし、Windowsではコンソールのコードがクラッシュします。こんにちは、Windowsアセンブリでnasmを使用している世界
C:\>のnasm -fのWin32 TEST.ASM test.o
C -o:\>のld test.o -o TEST.EXE
section .data
msg db 'Hello world!', 0AH
len equ $-msg
section .text
global [email protected]
[email protected]:
mov edx, len
mov ecx, msg
mov ebx, 1
mov eax, 4
int 80h
mov ebx, 0
mov eax, 1
int 80h
によると、このpost。 main
機能はWindowsでは使用できません。したがって、WinMain
に置き換える必要があります。
あなたのエントリポイントが_start
かmain
であれば、それは[email protected]
に変更し、ret 16
への手順の最後にret
を変更する必要があります。
私の作業例:
section .text
global [email protected]
[email protected]:
mov eax, 0
ret 16
将来の訪問者に役立つようにタイトルを編集してください。さもなければ、ローカライズされすぎる可能性があります。 –
@ RaymondChenに何を? – fuzz