Estoy usando nasm para compilar el siguiente ensamblaje. Sin embargo, el código se bloquea en la consola en Windows.Hola mundo usando nasm en ensamblaje de 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 [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
Según esto post. La función main
no está disponible en Windows y debe reemplazarse por WinMain
.
Así que si su punto de entrada es _start
o main
, se debe cambiar a [email protected]
y cambiar el ret
al final del procedimiento de ret 16
:
Mi ejemplo de trabajo:
section .text
global [email protected]
[email protected]:
mov eax, 0
ret 16
Por favor, edite el título para que sea útil para los futuros visitantes. De lo contrario, puede cerrarse como demasiado localizado. –
@RaymondChen a qué? – fuzz