Menu
Coddy logo textTech

Assembly online

Scrivi, esegui e condividi snippet di codice, senza configurare nulla.

Coddymain.asm
Output
Click Run to see the output here.

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 elf64 e collegato con ld su 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, write ed exit tramite l'istruzione syscall senza 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 un exit(0) pulito: il più piccolo programma x86-64 completo e il modo più rapido per capire come _start e syscall lavorano 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 un print: solo byte e syscall.

Domande frequenti sul compilatore Assembly online

Quale assembler e quale sintassi usa questo playground?
Usa NASM (il Netwide Assembler) con sintassi Intel, per Linux x86-64. Il codice viene assemblato con 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?
No. L'intera toolchain gira sul server in un container isolato. Scrivi NASM nel browser, premi Esegui e Coddy assembla e collega il programma per te. Non c'è nulla da installare in locale: niente NASM, niente ld, niente VM Linux.
Come leggo l'input in Assembly qui?
Usa la syscall 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?
Perché il codice di partenza viene collegato con 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?
Sì. Parti dal programma del saluto, cambia la stringa e guarda l'output. Poi prova a leggere l'input, a fare calcoli nei registri e a convertire i numeri in testo a mano. Visto che non serve configurare nulla e ogni esecuzione dà un feedback immediato, puoi iterare in fretta: è il modo più rapido per farti un'intuizione su registri, memoria e syscall.

Strumenti utili per Assembly

Strumenti gratuiti nel browser che si abbinano bene al playground Assembly, tutti parte di Coddy.