as 2007-08-08 17:11:20 UTC
FreeBSD ports repository
Modified files:
books/developers-handbook/x86 chapter.sgml
Log:
Uebersetzung Kapitel 12 - 12.6 von Nornagest.
Revision Changes Path
1.4 +580 -711 de-docproj/books/developers-handbook/x86/chapter.sgml
Index: chapter.sgml
===================================================================
RCS file: /home/cvs/de-docproj/books/developers-handbook/x86/chapter.sgml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -I$FreeBSDde.*$ -r1.3 -r1.4
--- chapter.sgml 8 Aug 2007 00:16:43 -0000 1.3
+++ chapter.sgml 8 Aug 2007 17:11:20 -0000 1.4
@@ -21,149 +21,120 @@
-->
<chapter id="x86">
+ <title>x86-Assembler-Programmierung</title>
+ <para><emphasis>Dieses Kapitel wurde geschrieben von
+ &a.stanislav;.</emphasis></para>
+
+ <sect1 id="x86-intro">
+ <title>Synopsis</title>
+
+ <para>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.</para>
+
+ <para>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.</para>
+
+ <para>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?</para>
+
+ <para>In diesem Kapitel möchte ich versuchen zu zeigen, wie
+ man Assembler-Sprache verwenden kann, um &unix;-Programme,
+ besonders unter FreeBSD, zu schreiben.</para>
+
+ <para>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 <ulink url="http://webster.cs.ucr.edu/">Art of Assembly
+ Language</ulink>; oder falls Sie ein gedrucktes Buch bevorzugen,
+ können Sie einen Blick auf Jeff Duntemanns <ulink
+ url="http://www.int80h.org/cgi-bin/isbn?isbn=0471375233">Assembly
+ Language Step-by-Step</ulink> werfen). Jedenfalls sollte jeder
+ Assembler-Programmierer nach diesem Kapitel schnell und
+ effizient Programme für FreeBSD schreiben
+ können.</para>
+
+ <para>Copyright © 2000-2001 G. Adam Stanislav. All rights
+ reserved.</para>
+ </sect1>
+
+ <sect1 id="x86-the-tools">
+ <title>Die Werkzeuge</title>
+
+ <sect2 id="x86-the-assembler">
+ <title>Der Assembler</title>
+
+ <para>Das wichtigste Werkzeug der Assembler-Programmierung ist
+ der Assembler, diese Software übersetzt Assembler-Sprache
+ in Maschinencode.</para>
+
+ <para>Für FreeBSD stehen zwei verschiedene Assembler zur
+ Verfügung. Der erste ist
+ <citerefentry><refentrytitle>as</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+ der die traditionelle &unix;-Assembler-Sprache verwendet.
+ Dieser ist Teil des Systems.</para>
+
+ <para>Der andere ist
+ <application>/usr/ports/devel/nasm</application>. Dieser
+ benutzt die Intel-Syntax und sein Vorteil ist, dass es Code
+ fü viele Vetriebssysteme übersetzen kann. Er muss
+ gesondert installiert werden, aber ist völlig
+ frei.</para>
+
+ <para>In diesem Kapitel wird die
+ <application>nasm</application>-Syntax verwendet. Einerseits
+ weil es die meisten Assembler-Programmierer, die von anderen
+ Systemen zu FreeBSD kommen, leichter verstehen werden. Und
+ offen gesagt, weil es das ist, was ich gewohnt bin.</para>
+ </sect2>
+
+ <sect2 id="x86-the-linker">
+ <title>Der Linker</title>
+
+ <para>Die Ausgabe des Assemblers muss, genau wie der Code jedes
+ Compilers, gebunden werden, um eine ausführbare Datei zu
+ bilden.</para>
+
+ <para>Der Linker
+ <citerefentry><refentrytitle>ld</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ ist der Standard und Teil von FreeBSD. Er funktioniert mit dem
+ Code beider Assembler.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="x86-system-calls">
+ <title>Systemaufrufe</title>
+
+ <sect2 id="x86-default-calling-convention">
+ <title>Standard-Aufrufkonvention</title>
+
+ <para>Standardmäßig benutzt der FreeBSD-Kernel die
+ C-Aufrufkonvention. Weiterhin wird, obwohl auf den Kernel
+ durch <function role="opcode">int 80h</function> zugegriffen
+ wird, angenommen, dass das Programm eine Funktion aufruft, die
+ <function role="opcode">int 80h</function> verwendet, anstatt
+ <function role="opcode">int 80h</function> direkt
+ aufzurufen.</para>
+
+ <para>Diese Konvention ist sehr praktisch und der
+ µsoft;-Konvention von <acronym>&ms-dos;</acronym>
+ überlegen. Warum? Weil es die &unix;-Konvention jedem
+ Programm, egal in welcher Sprache es geschrieben ist, erlaubt
+ auf den Kernel zuzugreifen.</para>
-<title>x86 Assembly Language Programming</title>
-<para>
-<emphasis>
-This chapter was written by &a.stanislav;.
-</emphasis></para>
-
-
-
-<sect1 id="x86-intro">
-<title>Synopsis</title>
-
-<para>
-Assembly language programming under &unix; is highly undocumented. It
-is generally assumed that no one would ever want to use it because
-various &unix; systems run on different microprocessors, so everything
-should be written in C for portability.
-</para>
-
-<para>
-In reality, C portability is quite a myth. Even C programs need
-to be modified when ported from one &unix; to another, regardless of
-what processor each runs on. Typically, such a program is full
-of conditional statements depending on the system it is
-compiled for.
-</para>
-
-<para>
-Even if we believe that all of &unix; software should be written in C,
-or some other high-level language, we still need assembly language
-programmers: Who else would write the section of C library
-that accesses the kernel?
-</para>
-
-<para>
-In this chapter I will attempt to show you
-how you can use assembly language writing
-&unix; programs, specifically under FreeBSD.
-</para>
-
-<para>
-This chapter does not explain the basics of assembly language.
-There are enough resources about that (for a complete
-online course in assembly language, see Randall Hyde's
-<ulink url="http://webster.cs.ucr.edu/">Art
-of Assembly Language</ulink>; or if you prefer
-a printed book, take a look at Jeff Duntemann's
-<ulink url="http://www.int80h.org/cgi-bin/isbn?isbn=0471375233">Assembly
-Language Step-by-Step</ulink>). However,
-once the chapter is finished, any assembly language programmer
-will be able to write programs for FreeBSD
-quickly and efficiently.
-</para>
-
-<para>
-Copyright © 2000-2001 G. Adam Stanislav. All rights reserved.
-</para>
-
-</sect1>
-
-<sect1 id="x86-the-tools">
-<title>The Tools</title>
-
-<sect2 id="x86-the-assembler">
-<title>The Assembler</title>
-
-<para>
-The most important tool for assembly language programming is the
-assembler, the software that converts assembly language code
-into machine language.
-</para>
-
-<para>
-Two very different assemblers are available for FreeBSD. One is
-<citerefentry><refentrytitle>as</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
-which uses the traditional &unix; assembly language syntax. It
-comes with the system.
-</para>
-
----------------------------------------------
Diff block truncated. (Max lines = 200)
----------------------------------------------
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-cvs-doc" in the body of the message
Received on Wed 08 Aug 2007 - 19:12:41 CEST