Assembly Playground
Code-Snippets schreiben, ausführen und teilen - keine Einrichtung nötig.
Assembly online im Browser ausführen
Dies ist ein kostenloser Online-Assembly-Compiler für x86-64-Code in NASM-Syntax. Tippen Sie Ihr Programm ein, drücken Sie Ausführen, und Coddy assembliert es mit nasm -f elf64, linkt es mit ld und führt die resultierende Linux-Binärdatei serverseitig aus – und zeigt Ihnen dann stdout, stderr und den Exit-Status. Es gibt nichts zu installieren: kein NASM, kein Linker, keine virtuelle Maschine, kein Cross-Compiler.
Das Startprogramm ist ein vollständiger _start-Einstiegspunkt, der eine Zeile von der Standardeingabe liest und eine Begrüßung mithilfe der rohen Syscalls read, write und exit zurückschreibt – ohne libc. So funktioniert Assembly wirklich: Sie verschieben Argumente in rax/rdi/rsi/rdx, rufen syscall auf, und den Rest erledigt der Kernel. Verwenden Sie das stdin-Panel unter dem Editor, um Ihrem Programm bei jeder Ausführung Eingaben zu geben, genau wie beim Weiterleiten von Daten in eine echte Binärdatei.
Was dieses Assembly-Playground nützlich macht
- Echte x86-64-NASM-Toolchain. Ihr Quellcode wird unter Linux mit
nasm -f elf64assembliert und mitldgelinkt – dieselben Befehle, die Sie lokal eintippen würden – sodass das, was hier läuft, dem entspricht, was auf einer echten Maschine läuft. - Direkte Linux-Syscalls. Das Startprogramm nutzt
read,writeundexitüber diesyscall-Instruktion ohne libc dazwischen, sodass Sie genau sehen, wie Register Argumente und Rückgabewerte transportieren. - Unterstützung der Standardeingabe. Senden Sie Bytes über das stdin-Panel an Ihr Programm und lesen Sie sie mit Syscall 0 – nützlich für die klassischen Übungen „einen Namen lesen, eine Begrüßung ausgeben“ und darüber hinaus.
- Keine Einrichtung, sofortiges Feedback. Keine NASM-Installation, keine Linker-Flags zum Merken, keine Berechtigungsfehler: Öffnen Sie die Seite, und der Editor ist bereit. Fehler von Assembler und Linker kommen direkt in der Ausgabe zurück.
Was Sie im Assembly-Playground ausprobieren können
- Geben Sie eine feste Zeichenkette mit einem einzigen
write-Syscall aus, dann ein sauberesexit(0)– das kleinste vollständige x86-64-Programm und der schnellste Weg zu sehen, wie_startundsyscallzusammenpassen. - Lesen Sie aus stdin in einen
.bss-Puffer, entfernen Sie den abschließenden Zeilenumbruch und geben Sie ihn zurück – das Muster hinter fast jeder eingabegesteuerten Assembly-Übung. - Addieren Sie zwei Zahlen in Registern und wandeln Sie das Ergebnis von Hand in ASCII-Ziffern um, damit Sie es mit
writeausgeben können. So lernen Sie, dass Assembly keinprinthat – nur Bytes und Syscalls.
FAQ zum Online-Assembly-Compiler
Welchen Assembler und welche Syntax verwendet dieses Playground?
nasm -f elf64 assembliert und mit ld gelinkt. Wenn Sie von der AT&T/GAS-Syntax kommen (dem %rax-, movq-Stil), schreiben Sie im Intel-Stil von NASM um: mov rax, 1, section .text, global _start.Muss ich NASM oder einen Linker installieren, um dies zu verwenden?
Wie lese ich hier Eingaben in Assembly?
read-Syscall (Nummer 0): Legen Sie 0 in rax (sys_read), 0 in rdi (stdin), die Adresse eines Puffers in rsi und die maximale Byteanzahl in rdx, und führen Sie dann syscall aus. Was auch immer Sie in das stdin-Panel unter dem Editor eingeben, wird Ihrem Programm bei der Ausführung übergeben. Das Startprogramm zeigt das vollständige Muster, einschließlich des Entfernens des abschließenden Zeilenumbruchs.Warum braucht mein Programm _start statt main?
ld und ohne C-Runtime gelinkt wird. main ist eine libc-Konvention – der C-Startup-Code ruft es auf, nachdem er alles eingerichtet hat. Bei einem reinen ld-Link gibt es keine libc, also springt der Kernel direkt zum Label _start, weshalb jedes Programm hier global _start definiert. Sie sind dafür verantwortlich, am Ende sauber mit dem exit-Syscall (Nummer 60) zu beenden.Kann ich mit diesem Compiler auch als Anfänger Assembly lernen?
Nützliche Tools für Assembly
Kostenlose, browserbasierte Tools, die gut zum Assembly-Playground passen - alles Teil von Coddy.