Sto usando nasm per compilare il seguente assembly. Tuttavia il codice si blocca nella console sotto Windows.Hello world using nasm in windows assembly
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
Secondo questo post. La funzione main
non è disponibile in Windows e deve essere sostituita da WinMain
.
Così, se il punto di ingresso è _start
o main
, dovrebbe essere cambiato per [email protected]
e cambiare il ret
al termine della procedura di ret 16
:
Il mio esempio di lavoro:
section .text
global [email protected]
[email protected]:
mov eax, 0
ret 16
Si prega di modificare il titolo in modo che sarà utile per i visitatori futuri. Altrimenti potrebbe essere chiuso come troppo localizzato. –
@RaymondChen a cosa? – fuzz