Assembler lernen
Ein Kurs für Einsteiger, der mit dem Debugger arbeitet: Jedes Programm läuft Schritt für Schritt, und du siehst, was die CPU tut. Er beginnt bei den Registern und führt über Sprünge, Speicher und Funktionen bis zur Windows-API.
Alle Beispiele gibt es für vier Architekturen: i386 und x64 (Intel und AMD) sowie ARM 32 (ARM32, Thumb-2) und ARM 64 (AArch64). Auf jeder Lektion wählst du oben die Architektur, die dich interessiert; die Wahl bleibt für alle Lektionen gespeichert. Die Konzepte sind in allen gleich – nur die Namen der Befehle und der Register ändern sich. Wer zwei Architekturen nebeneinander liest, versteht beide besser.
Was du brauchst
- Asmonite (kostenlos, ohne Installation: entpacken und starten).
- Für i386 und x64 einen Windows-Rechner. Für ARM 32 und ARM 64 ein Windows-on-ARM-Gerät, mit dem Asmonite sich verbindet (siehe Windows on ARM); die ARM-Programme kannst du auch ohne Gerät lesen und übersetzen.
- Vorkenntnisse in einer Programmiersprache sind nützlich, aber nicht nötig.
Die Lektionen
- Register und der erste Befehl
- Hello, World! mit printf und Formaten
- Sprünge, Flags und bedingte Sprünge
- Schleifen und Zählen
- Rechnen: add, sub, mul, div (folgt)
- Zahlensysteme und Bits (folgt)
- Daten im Speicher: .data und Adressen (folgt)
- Arrays und Strings (folgt)
- Der Stack: push und pop (folgt)
- Funktionen: call und ret (folgt)
- Argumente und Aufrufkonventionen (folgt)
- Rekursion: die Fakultät (folgt)
- Die Windows-API (folgt)
- Dateien lesen und schreiben (folgt)
- Mit 64-Bit-Zahlen rechnen (folgt)
- Interrupts: Timer und DOS (folgt)
- Fremden Code lesen mit Dismonite (folgt)
- Schneller und kürzer (folgt)
- x64 im Detail (folgt)
- ARM im Detail: Bedingungen, Thumb-2, ARM64 (folgt)
Weitere Lektionen kommen nach und nach hinzu. Zu jeder gehören Beispielprogramme für alle vier Architekturen, Übungen mit Lösungen und ein kurzes Video.