Kapitel 11. x86-Assembler-Programmierung

Inhaltsverzeichnis
11.1. Synopsis
11.2. Die Werkzeuge
11.3. Systemaufrufe
11.4. Rückgabewerte
11.5. Portablen Code erzeugen
11.6. Unser erstes Programm
11.7. UNIX®-Filter schreiben
11.8. Gepufferte Eingabe und Ausgabe
11.9. Kommandozeilenparameter
11.10. Die UNIX®-Umgebung
11.11. Arbeiten mit Dateien
11.12. One-Pointed Mind
11.13. Die FPU verwenden
11.14. Vorsichtsmassnahmen
11.15. Danksagungen

Dieses Kapitel wurde geschrieben von G. Adam Stanislav.

11.1. Synopsis

Übersetzt von Hagen Kühl.

Assembler-Programmierung unter UNIX® ist höchst undokumentiert. Es wird allgemein angenommen, dass niemand sie jemals benutzen will, da UNIX®-Systeme auf verschiedenen Mikroprozessoren laufen, und man deshalb aus Gründen der Portabilität alles in C schreiben sollte.

In Wirklichkeit ist die Portabilität von C größtenteils ein Mythos. Auch C-Programme müssen angepasst werden, wenn man sie von einem UNIX® auf ein anderes portiert, egal auf welchem Prozessor jedes davon läuft. Typischerweise ist ein solches Programm voller Bedingungen, die unterscheiden für welches System es kompiliert wird.

Sogar wenn wir glauben, dass jede UNIX®-Software in C, oder einer anderen High-Level-Sprache geschrieben werden sollte, brauchen wir dennoch Assembler-Programmierer: Wer sonst sollte den Abschnitt der C-Bibliothek schreiben, die auf den Kernel zugreift?

In diesem Kapitel möchte ich versuchen zu zeigen, wie man Assembler-Sprache verwenden kann, um UNIX®-Programme, besonders unter FreeBSD, zu schreiben.

Dieses Kapitel erklärt nicht die Grundlagen der Assembler-Sprache. Zu diesem Thema gibt es bereits genug Quellen (einen vollständigen Online-Kurs finden Sie in Randall Hydes Art of Assembly Language; oder falls Sie ein gedrucktes Buch bevorzugen, können Sie einen Blick auf Jeff Duntemanns Assembly Language Step-by-Step werfen). Jedenfalls sollte jeder Assembler-Programmierer nach diesem Kapitel schnell und effizient Programme für FreeBSD schreiben können.

Copyright © 2000-2001 G. Adam Stanislav. All rights reserved.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.

Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.