Menu
Coddy logo textTech

Assembly Playground

Code-Snippets schreiben, ausführen und teilen - keine Einrichtung nötig.

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

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 elf64 assembliert und mit ld gelinkt – 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, write und exit über die syscall-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 sauberes exit(0) – das kleinste vollständige x86-64-Programm und der schnellste Weg zu sehen, wie _start und syscall zusammenpassen.
  • 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 write ausgeben können. So lernen Sie, dass Assembly kein print hat – nur Bytes und Syscalls.

FAQ zum Online-Assembly-Compiler

Welchen Assembler und welche Syntax verwendet dieses Playground?
Es verwendet NASM (den Netwide Assembler) mit Intel-Syntax und zielt auf x86-64 Linux ab. Ihr Code wird mit 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?
Nein. Die vollständige Toolchain läuft serverseitig in einem isolierten Container. Sie schreiben NASM im Browser, drücken Ausführen, und Coddy assembliert und linkt Ihr Programm für Sie. Es gibt lokal nichts zu installieren: kein NASM, kein ld, keine Linux-VM.
Wie lese ich hier Eingaben in Assembly?
Verwenden Sie den 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?
Weil das Startprogramm mit 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?
Ja. Beginnen Sie mit dem Begrüßungsprogramm, ändern Sie die Zeichenkette und beobachten Sie die Ausgabe. Versuchen Sie dann, Eingaben zu lesen, Arithmetik in Registern durchzuführen und Zahlen von Hand in Text umzuwandeln. Da es keine Einrichtung gibt und jede Ausführung sofortiges Feedback liefert, können Sie schnell iterieren – der schnellste Weg, ein Gespür für Register, Speicher und Syscalls zu entwickeln.

Nützliche Tools für Assembly

Kostenlose, browserbasierte Tools, die gut zum Assembly-Playground passen - alles Teil von Coddy.