Assembly online
Scrivi, esegui e condividi snippet di codice, senza configurare nulla.
Esegui Assembly online nel tuo browser
Questo è un compilatore Assembly online gratuito per codice x86-64 scritto in sintassi NASM. Scrivi il programma, premi Esegui e Coddy lo assembla con nasm -f elf64, lo collega con ld ed esegue l'eseguibile Linux risultante sul server, poi ti mostra stdout, stderr e il codice di uscita. Non c'è nulla da installare: niente NASM, niente linker, niente macchina virtuale, niente cross-compiler.
Il programma di partenza è un entry point _start completo che legge una riga dallo standard input e restituisce un saluto usando le syscall read, write ed exit in forma grezza, senza libc. È l'Assembly come funziona davvero: sposti gli argomenti in rax/rdi/rsi/rdx, invochi syscall e il kernel fa il resto. Usa il pannello stdin sotto l'editor per passare input al programma a ogni esecuzione, proprio come faresti con una pipe verso un vero binario.
Perché questo playground Assembly è utile
- Vera toolchain NASM x86-64. Il sorgente viene assemblato con
nasm -f elf64e collegato conldsu Linux, gli stessi comandi che scriveresti in locale, quindi ciò che gira qui corrisponde a ciò che gira su una macchina reale. - Syscall Linux dirette. Il codice di partenza usa
read,writeedexittramite l'istruzionesyscallsenza libc di mezzo, così vedi esattamente come i registri trasportano argomenti e valori di ritorno. - Supporto allo standard input. Passa byte al programma dal pannello stdin e leggili con la syscall 0: utile per i classici esercizi 'leggi un nome, stampa un saluto' e non solo.
- Zero configurazione, feedback immediato. Nessuna installazione di NASM, nessun flag del linker da ricordare, nessun errore di permessi: apri la pagina e l'editor è pronto. Gli errori dell'assembler e del linker arrivano direttamente nell'output.
Cosa puoi provare nel playground Assembly
- Stampa una stringa fissa con una sola syscall
write, poi unexit(0)pulito: il più piccolo programma x86-64 completo e il modo più rapido per capire come_startesyscalllavorano insieme. - Leggi dallo stdin in un buffer
.bss, togli il carattere di nuova riga finale e ristampa il testo: lo schema dietro quasi ogni esercizio Assembly basato sull'input. - Somma due numeri nei registri e converti a mano il risultato in cifre ASCII, così puoi stamparlo con
write. È così che scopri che l'Assembly non ha unprint: solo byte e syscall.
Domande frequenti sul compilatore Assembly online
Quale assembler e quale sintassi usa questo playground?
nasm -f elf64 e collegato con ld. Se arrivi dalla sintassi AT&T/GAS (lo stile %rax, movq), riscrivi il codice nello stile Intel di NASM: mov rax, 1, section .text, global _start.Devo installare NASM o un linker per usarlo?
Come leggo l'input in Assembly qui?
read (numero 0): metti 0 in rax (sys_read), 0 in rdi (stdin), l'indirizzo di un buffer in rsi e il numero massimo di byte in rdx, poi esegui syscall. Tutto ciò che scrivi nel pannello stdin sotto l'editor arriva al programma quando premi Esegui. Il codice di partenza mostra lo schema completo, compresa la rimozione del carattere di nuova riga finale.Perché il mio programma ha bisogno di _start invece di main?
ld senza runtime C. main è una convenzione della libc: il codice di avvio del C la chiama dopo aver preparato tutto. Con un collegamento ld puro non c'è libc, quindi il kernel salta direttamente all'etichetta _start, ed è per questo che ogni programma qui definisce global _start. Tocca a te uscire in modo pulito con la syscall exit (numero 60) alla fine.Posso imparare l'Assembly con questo compilatore anche da principiante?
Strumenti utili per Assembly
Strumenti gratuiti nel browser che si abbinano bene al playground Assembly, tutti parte di Coddy.