cvs commit: de-docproj/books/developers-handbook/x86 chapter.sgml

From: Aron Schlesinger <as(at)doc.bsdgroup.de>
Date: Wed, 8 Aug 2007 17:11:20 GMT

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&ouml;chst
  + undokumentiert. Es wird allgemein angenommen, dass niemand sie
  + jemals benutzen will, da &unix;-Systeme auf verschiedenen
  + Mikroprozessoren laufen, und man deshalb aus Gr&uuml;nden der
  + Portabilit&auml;t alles in C schreiben sollte.</para>
  +
  + <para>In Wirklichkeit ist die Portabilit&auml;t von C
  + gr&ouml;&szlig;tenteils ein Mythos. Auch C-Programme m&uuml;ssen
  + angepasst werden, wenn man sie von einem &unix; auf ein anderes
  + portiert, egal auf welchem Prozessor jedes davon l&auml;uft.
  + Typischerweise ist ein solches Programm voller Bedingungen, die
  + unterscheiden f&uuml;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&ouml;chte ich versuchen zu zeigen, wie
  + man Assembler-Sprache verwenden kann, um &unix;-Programme,
  + besonders unter FreeBSD, zu schreiben.</para>
  +
  + <para>Dieses Kapitel erkl&auml;rt nicht die Grundlagen der
  + Assembler-Sprache. Zu diesem Thema gibt es bereits genug Quellen
  + (einen vollst&auml;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&ouml;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&uuml;r FreeBSD schreiben
  + k&ouml;nnen.</para>
  +
  + <para>Copyright &copy; 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 &uuml;bersetzt Assembler-Sprache
  + in Maschinencode.</para>
  +
  + <para>F&uuml;r FreeBSD stehen zwei verschiedene Assembler zur
  + Verf&uuml;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&uuml; viele Vetriebssysteme &uuml;bersetzen kann. Er muss
  + gesondert installiert werden, aber ist v&ouml;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&uuml;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&auml;&szlig;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
  + &microsoft;-Konvention von <acronym>&ms-dos;</acronym>
  + &uuml;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 &copy; 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

search this site