Assembly-HOWTO.pl.txt

(57 KB) Pobierz
  Assembly HOWTO
  Autor: Franois-Ren Rideau fare@tunes.org
  v0.4n, 22 Sierpnia 1998
  Wersja polska: Zbigniew Micha Kempczyski wegorz@byd-
  goszcz.pkobp.pl
  v1.0, 30 Stycznia 1999 r.


  Dokument ten zosta napisany w standardzie ISO-8859-2. Orygina tego
  dokumentu znajduje sie pod adresem  <http://www.tunes.org/~fare/Assem-
  bly-HOWTO>.  To jest Linux Assembly HOWTO.  Ten dokument opisuje
  metody programowania w assemblerze z uyciem WOLNYCH narzdzi pro-
  gramistycznych, koncentrujc si na Systemie Operacyjnym Linux na plat-
  formach i386.  Zaczony materia moe, ale nie musi by zgodny, z innym
  sprztem i/lub oprogramowaniem.  Przewodnictwo na tym bdzie mile
  widziane.  Sowa kluczowe: assemblacja, assembler, wolny, makroproce-
  sor, preprocesor, asm, inline asm, 32-bitowy, x86, i386, gas, as86,
  nasm
  ______________________________________________________________________

  Spis treci













































  1. WPROWADZENIE

     1.1 Legal Blurp
     1.2 Wana Informacja
     1.3 Przed sowem
        1.3.1 Jak uywa tego dokumentu
        1.3.2 Inne zalene dokumenty
     1.4 Historia
     1.5 Wyrazy Uznania

  2. CZY POTRZEBUJESZ ASEMBLACJI?

     2.1 Za i Przeciw
        2.1.1 Korzyci Assemblacji
        2.1.2 Niekorzyci Assemblacji
        2.1.3 Ocenianie
     2.2 Jak NIE uywa Assemblera
        2.2.1 Oglne zasady uzyskania efektywnego kodu
        2.2.2 Jzyki ze zoptymalizowanymi kompilatorami
        2.2.3 Oglne zasady przypieszania twojego kodu
        2.2.4 Sprawdzanie kodu generowanego przez kompilator

  3. ASSEMBLERY

     3.1 Inline Assemblera GCC
        3.1.1 Gdzie znale GCC
        3.1.2 Gdzie znale dokumentacje GCC Inline Asm
        3.1.3 Jak waciwie wywoywa GCC z kodem inline assemblera.
     3.2 GAS
        3.2.1 Gdzie go znale
        3.2.2 Jaka jest skadnia AT&T
        3.2.3 Ograniczony tryb 16-bitowy
     3.3 GASP
        3.3.1 Gdzie znale GASP
        3.3.2 Jak to dziaa
     3.4 NASM
        3.4.1 Gdzie znale NASM
        3.4.2 Co to robi
     3.5 AS86
        3.5.1 Gdzie dosta AS86
        3.5.2 Jak wywoa assembler?
        3.5.3 Gdzie znale dokumentacje
        3.5.4 Co jeli nie mog ju skompilowa Linux-a z now wersj ?
     3.6 INNE ASSEMBLERY
        3.6.1 Win32Forth assembler
        3.6.2 Terse
        3.6.3 Nie-wolne i/lub Nie-32bitowe x86 assemblery.

  4. METAPROGRAMOWANIE/MAKROPRZETWARZANIE

     4.1 Co jest zintegrowane w powyszym
        4.1.1 GCC
        4.1.2 GAS
        4.1.3 GASP
        4.1.4 NASM
        4.1.5 AS86
        4.1.6 INNE ASSEMBLERY
     4.2 Zewntrzne Filtry
        4.2.1 CPP
        4.2.2 M4
        4.2.3 Makroprzetwarzanie z twoim wasnym filtrem
        4.2.4 Metaprogramowanie
           4.2.4.1 Cz wspomagajca z dostpnych kompilatorw
           4.2.4.2 Zestaw narzdzi Machine-Code z New-Jersey
           4.2.4.3 Tunes

  5. KONWENCJE WYWOA

     5.1 Linux
        5.1.1 Poczenie z GCC
        5.1.2 ELF kontra a.out - problemy
        5.1.3 Bezporednie wywoania systemowe Linux-a
        5.1.4 I/O pod Linux-em
        5.1.5 Dostp do 16-bitowych sterownikw z Linux-a/i386
     5.2 DOS
     5.3 Winwybuchy i takie
     5.4 Twj wasny OS

  6. DO ZROBIENIA & WSKAZANIA

  7. Od tumacza



  ______________________________________________________________________

  1.  WPROWADZENIE

  1.1.  Legal Blurp

  Copyright (C) 1996,1997,1998 by Franois-Ren Rideau.

  Ten dokument jest wolnym oprogramowaniem, moesz go redystrybuowa i/lub
  modyfikowa zgodnie z zaoeniami GNU General Public License
  opublikowanym przez Free Software Foundation; wersja 2 Licencji, lub
  (w twoim przypadku) inna pniejsza wersja.


  1.2.  Wana Informacja

  To jest interaktywnie rozwijany dokument: jeste specjalnie proszony do
  zadawania pyta, udzielania odpowiedzi na pytania, poprawiania
  odpowiedzi, dodawania nowych odpowiedzi na FAQ, wskazywania na inne
  oprogramowanie, wskazywania osobie prowadzcej bdy lub braki na
  stronach.  Jeli jeste zmotywowany, mgby przej prowadzenie tego HOWTO.
  Sowem, dziaaj !

  By przej prowadzenie skontaktuj si z kimkolwiek, kto wydaje si
  prowadzi Assembly-HOWTO. W trakcie tego pisania to jestem ja, np.
  Franois-Ren Rideau <mailto:fare@tunes.org>.  Jakkolwiek, mino troch
  czasu od kiedy poszukiwaem mocnego gocia by podmieni mnie jako
  prowadzcego ten dokument. Niekorzyci jest to, i musisz spdzi troch
  czasu trzymajc dokument na czasie, poprawiajc go, i uczc si narzdzi
  publikacyjnych LDP. Korzyci jest to, i zdobdziesz troch sawy i moesz
  otrzyma wolne kopie kompendiw HOWTO.


  1.3.  Przed sowem

  Ten dokument ma na celu udzielenie odpowiedzi na najczciej zadawane
  pytania przez ludzi, ktrzy programuj lub chc programowa w 32-bitowym
  assemblerze x86 uywajc wolnych assemblerw, zwaszcza w systemie
  operacyjnym Linux.  Moe on take wskazywa inne dokumenty o nie-wolnych,
  nie-x86, lub nie-32-bitowych assemblerach, chocia nie jest to jego
  pierwszorzdnym celem.

  Poniewa gwnym celem programowania w assemblerze jest budowa wntrznoci
  systemw operacyjnych, interpretatorw, kompilatorw, i gier, gdzie
  kompilator C zawodzi nie dostarczajc potrzebnych rodkw wyrazu,
  (wykonanie jest coraz rzadszym tematem), skoncentrujemy si na rozwoju
  takiego oprogramowania.

  1.3.1.  Jak uywa tego dokumentu

  Ten dokument zawiera odpowiedzi na pewne najczciej zadawane pytania.
  W wielu miejscach, zostay umiejscowione adresy URL by wskaza na pewne
  oprogramowanie lub magazyny dokumentacji.

  Sprawd gdzie s skopiowane najbardziej uyteczne magazyny, i sprbuj
  dobra si do najbliszej z nich; uchronisz w ten sposb Internet przed
  niepotrzebym ruchem w sieci, i zaoszczdzisz swj cenny czas.

  W szczeglnoci pewne wielkie magazyny na caym wiecie, sa kopiami innych
  popularnych magazynw.  Powiniene si nauczy i zapamita miejsca
  umiejscowione blisko ciebie (roztropno-sieciowa).  Czasami, lista
  takich kopii jest wypisana w pliku, lub we wiadomoci wejciowej. Miej
  na uwadze te porady.  W przeciwnym wypadku zapytaj archie o
  oprogramowaniu ktrego szukasz...

  Najwiesze wersje tego dokumentu znajduj si w
  <http://www.tunes.org/~fare/Assembly-HOWTO> lub
  <http://www.tunes.org/~fare/Assembly-HOWTO.sgml>

  ale to co jest w magazynach Linux HOWTO powinno by take na czasie (ale
  tego nie wiem):

  <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/> (?)

  Francuska wersja tego HOWTO moe by znaleziona w

  <ftp://ftp.lip6.fr/pub/linux/french/HOWTO/>


  1.3.2.  Inne zalene dokumenty



  o  Jeli nie wiesz czym jest wolne oprogramowanie, prosz przeczytaj
     ostronie GNU General Public License, ktra jest uywana w wielu
     wolnych programach, i jest pierwowzorem dla wikszoci takich
     licencji.  Oglnie pojawia si w pliku o nazwie COPYING, z wersj
     biblioteczn w pliku o nazwie COPYING.LIB.  Literatura z FSF
     <http://www.fsf.org> (fundacja wolnego oprogramowania) moe take ci
     pomc.

  o  W szczeglnoci, interesujcym rzecz w takim typie wolnego
     oprogramowania przychodzcego ze rdami jest to, i moesz je sprawdzi,
     poprawi a take czasami z nich zapoyczy.  Przeczytaj ostronie
     szczegy licencji i skorzystaj.

  o  Jest lista FAQ na comp.lang.asm.x86, ktra odpowie na wiele oglnych
     pyta o programowaniu w assemblerze x86, i pytaniach o pewnych
     komercyjnych assemblerach w 16-bitowym rodowisku DOS-a.  Pewne z
     nich zahaczaj o wolnym 32-bitowym programowaniu, wic moesz chcie
     przeczyta to FAQ...

     <http://www2.dgsys.com/~raymoon/faq/asmfaq.zip>

  o  FAQ-i i dokumenty istniej o programowaniu na twojej ulubionej
     platformie, jakakolwiek ona jest, wic powiniene skonsultowa tematy
     specyficzne dla niej nie bezporednio zwizane z programowaniem w
     assemblerze.


  1.4.  Historia

  Kada wersja zawiera kilka napraw i mniejszych korekt, ktrych nie bdzie
  trzeba cigle poprawia.
     Version 0.1     23 Kwiecie 199996
        Francois-Rene "Far" Rideau <fare@tunes.org> tworzy i publikuje
        pierwsze mini-HOWTO, poniewa ``Jestem chory od cigego
        odpowiadania na te same pytania na comp.lang.asm.x86''


     Version 0.2     4 Maj 199996
        *


     Version 0.3c    15 Czerwiec 199996
        *


     Version 0.3f    17 Padziernik 199996
        *


     Version 0.3g    2 Listopad 199996
        Utworzenie Historii. Dodanie wskanikw w sekcji o cross-
        kompilacji.  Dodanie sekcji o programowaniu I/O pod Linux-em (w
        szczeglnoci video).


     Version 0.3h    6 Listopad 199996
        wicej o cross-kompilacji - Zobacz na sunsite: devel/msdos/


     Version 0.3i    16 Listopad 199996
        NASM atwo przechodzi


     Version 0.3j    24 Listopad 199996
        wskazanie na tumaczenie francuskie


     Version 0.3k    199 Grudzie 199996
        Co ? Zapomniaem wskazac na terse???


     Version 0.3l    11 Stycze 199997
        *


     Version 0.4pre1 13 Stycze 199997
        tekst mini-HOWTO przeksztaca si w pene linuxdoc-sgml-owe HOWTO,
        by zobaczy jak wygldaj narzdzia SGML.


     Version 0.4     20 Stycze 199997
        pierwsze jako takie wypuszczenie tego HOWTO.


     Version 0.4a    20 Stycze 199997
        dooono sekcj Wyrazy Uznania


     Version 0.4b    3 Luty 199997
        przesunicie NASM: teraz jest przed AS86


     Version 0.4c    99 Luty 199997
        Dodano sekcj "CZY POTRZEBUJESZ ASSEMBLACJI ?"



     Version 0.4d    288 Luty 199997
        Vapor oznajmia o nowym przewodnictwie Assembly-HOWTO.


     Version 0.4e    13 Luty 199997
        Wypuszczenie o DrLinux


     Version 0.4f    20 Marzec 199997
        *


     Version 0.4g    30 Marzec 199997
        *


     Version 0.4h    199 Czerwiec 199997
        wci wicej na temat "jak nie uywa assemblacji"; unowoczenienie o
        NASM, GAS.


     Version...
Zgłoś jeśli naruszono regulamin