Spis treści

Asembler – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem. W tym artykule język programowania nazywany będzie językiem asemblera, a program tłumaczący – asemblerem.

edytuj Język asemblera

Języki asemblera (zwyczajowo asemblery) to rodzina języków programowania niskiego poziomu, których jedno polecenie odpowiada zasadniczo jednemu rozkazowi procesora. Języki te powstały na bazie języków maszynowych danego procesora poprzez zastąpienie kodów operacji ich mnemonikami. Dzięki stosowaniu kilkuliterowych skrótów poleceń zrozumiałych dla człowieka pozwala to z jednej strony na tworzenie oprogramowania, z drugiej strony bezpośrednia odpowiedniość mnemoników oraz kodu maszynowego umożliwia zachowanie wysokiego stopnia kontroli programisty nad działaniem procesora. Składnia języka asemblera zależy od architektury procesora, ale i używanego asemblera, jednak zwykle autorzy asemblerów dla danego procesora trzymają się oznaczeń danych przez producenta.

Pierwotnie był to podstawowy język programowania procesorów. W wyniku poszukiwania efektywniejszych metod programowania i pojawianiem się kolejnych języków interpretowanych i kompilowanych języki asemblerów straciły na znaczeniu. Z tego powodu współcześnie nie korzysta się z nich do pisania całych programów na komputery osobiste. Jednak istnieją zastosowania, np. w przypadku programowania mikrokontrolerów, systemów wbudowanych, sterowników sprzętu, gdzie nadal znajdują one swoje miejsce. Korzysta się z także do pisania kluczowych fragmentów kodu wymagających najwyższej wydajności, wyjątkowo małych rozmiarów kodu wynikowego lub również niewielkich fragmentów systemów operacyjnych.

edytuj Asembler

Asembler (ang. assemble – składać) to program dokonujący tłumaczenia języka asemblera na język maszynowy, czyli tzw. asemblacji. Jest to swoisty odpowiednik kompilacji dla języków wyższych poziomów. Program tworzony w innych językach programowania niż asembler jest zwykle kompilowany do języka maszynowego (wyniku pracy asemblera), a następnie zamieniany na kod binarny przez program asemblera.

Powtarzające się często schematy programistyczne oraz wstawiane fragmenty kodu doprowadziły do powstania tzw. makroasemblerów, które rozszerzają asemblery o obsługę makr przed właściwą asemblacją, co zbliża je nieco do pierwszych wersji języka C.

edytuj Przykład

Do najpopularniejszych odmian języka asemblera, ze względu na popularność architektury Intela znanej pod nazwą x86, zaliczyć można Asembler x86. Do najpopularniejszych asemblerów zalicza się NASM, TASM oraz MASM, jak również FASM i GASM.

edytuj Kod

Przykładowe polecenia (mnemoniki) w języku Asembler x86:

mov ax, 0D625h
mov es, ax       ; wprowadź do rejestru segmentowego ES wartość z AX wynoszącą D625 szesnastkowo (54821 dziesiętnie)
mov al, 24
mov ah, 0        ; załaduj do rejestru AX wartość 24 (wyzeruj AH – starszą połówkę rejestru AX i zapisz wartość 24 w młodszej AL)
int 21h          ; wywołaj przerwanie nr 33 (21 szesnastkowo)

edytuj Historia

Pierwszym asemblerem był skonstruowany przez Konrada Zuse w 1945 r. układ elektromechaniczny przygotowania taśmy perforowanej z programem dla maszyny Z4 w postaci modułu Planfertigungsteil, który umożliwiał wprowadzanie oraz odczyt rozkazów i adresów w sposób zrozumiały dla człowiekapotrzebne źródło.

Pierwszym polskim asemblerem był SAS komputera XYZ z ok. 1958 r.potrzebne źródło Do pierwszych szerzej znanych w Polsce asemblerów należy PLAN, wykorzystywany w komputerach Odra, oraz MOTIS, stosowany w maszynach Mera 300.

edytuj Bibliografia

  • Abel Peter: Asembler IBM PC (tł. Katarzyna Tryc). Wydawnictwo RM. 2004. ISBN: 83-7243-411-5
  • Andrusz Arkadiusz, Maciej Sokołowski: Mapa pamięci IBM/PC w przykładach w Asemblerze i Turbo Pascalu /. Warszawa: Lynx-SFT, 1995. ISBN 83-85455-56-6.
  • Augustyn Jacek: Asemblery: uC51, ADSP-21065L SHARC; Państwowa Wyższa Szkoła Zawodowa w Tarnowie. Instytut Politechniczny. Kraków: Wydawnictwo Instytutu Gospodarki Surowcami Mineralnymi i Energią Polskiej Akademii Nauk, 2006. ISBN 83-89174-39-1.
  • Barron David William: Asemblery i programy ładujące (z jęz. ang. tł. Henryk Stelmasik, Włodzimierz Zuberek). Wariant tytułu Assemblers and loaders. Warszawa: Państ. Wydaw. Naukowe, 1982. ISBN 83-01-04544-2.
  • Błaszczyk Adam: Win32ASM Asembler w Windows: Wariant tytułu Asembler w Windows. Gliwice: Helion, cop. 2004. ISBN 83-7361-022-7/
  • Cofta Piotr, Witold Malina: Translatory asemblerów: skrypt jest przeznaczony dla studentów kierunku Informatyka jako pomoc do wykładów z przedmiotu Translatory; Politechnika Gdańska.Gdańsk : Wydaw. PG, 1991.
  • Doligalski Adam: Amiga 500 - 4000: kurs asemblera dla początkujących: Wariant tytułu Kurs asemblera dla początkujących. Gliwice: Helion, cop. 1994. ISBN 83-85701-37-0.
  • Duntemann Jeff: Zrozumieć Asembler.Wariant tytułu: Assembly language :Warszawa: Translator s.c., 1994. ISBN 83-86149-05-1.
  • Grzegorzewski Robert, G. Puchawski: Turbo Pascal i asembler: praktyka programowania. Warszawa: Lynx-SFT, 1994. ISBN 83-85455-45-0.
  • Irvine Kip R.: Asembler dla procesorów Intel: vademecum profesjonalisty (tł. Marcin Jedrysiak). Gliwice: Helion, 2003. ISBN 83-7197-910-X.
  • Jędruch Andrzej: Techniki asemblerowe w programowaniu komputera IBM PC. Cz. 2, Zastosowanie funkcji systemu DOS. Gdańsk: Wydaw. PG, 1991. Asemblery-podręczniki akademickie.
  • Kapela Andrzej, Jarosław Mirkowski: Asembler 8086/88: poradnik programisty. Zielona Góra: Wydawnictwo Wyższej Szkoły Inżynierskiej, 1990.
  • Kruk Stanisław: Asembler - podręcznik użytkownika. Wyd. 2 popr. i uzup. Warszawa: „Mikom", 1999. UKD 004.438(07)A/Z.
  • Kruk Stanisław: Asembler - wykłady i ćwiczenia. Warszawa: Mikom, 2003. ISBN 83-7279-310-7.
  • Kruk Stanisław: Asembler w koprocesorze. Warszawa: Mikom, 2003. ISBN 83-7279-309-3.
  • Kruk Stanisław: Ćwiczenia z Asemblera. Wyd. 2, popr. Warszawa: „Mikom", 2000. ISBN 83-7279-052-3.
  • Kruk Stanisław: Kurs programowania w języku Asembler dla średnio zaawansowanych. Warszawa: Mikom, 2001. ISBN 83-7279-130-9.
  • Kruk Stanisław: Turbo Asembler: idee, polecenia, rozkazy procesora Pentium. Warszawa: Mikom, 2000.
  • Lewis Daniel Wesley: Między asemblerem a językiem C: podstawy oprogramowania wbudowanego (tł. Janusz Machowski).
  • Marańda Witold, Grzegorz Jabłoński, Mariusz Grecki: Programowanie mikroprocesorów rodziny Motorola 680x0 w języku asemblera: materiały pomocnicze do laboratorium dla kierunków studiów Elektronika i Informatyka, Politechnika Łódzka. Katedra Mikroelektroniki i Technik Informatycznych. Wyd. 2 popr. Łódź: Politechnika Łódzka. Katedra Mikroelektroniki i Technik Informatycznych, 2005. ISBN 83-919289-8-5.
  • Marciniak Andrzej: Delphi 5 professional: encyklopedia języka programowania Object Pascal i asemblera wewnętrznego. Poznań: Wydaw. Nakom, 2001.
  • Michałek Grzegorz: Asembler. Warszawa: Infoland, 2001. ISBN 83-7313-024-1.
  • Michałek Grzegorz: Asembler nie tylko dla orłów. Warszawa: Intersoftland, cop. 1999. ISBN 83-7260-002-3.
  • Nawrocki Jerzy Ryszard: Programowanie komputerów IBM PC w języku ASEMBLERA metodą systematyczną; Politechnika Poznańska. Poznań: Wydaw. PP, 1991. Skrypt dla studentów II i IV roku kierunku Informatyka.
  • Pająk Andrzej, Aleksander Wigura: Makrogeneratory, asemblery i konsolidatory. Warszawa: Państ. Wydaw. Naukowe, 1983. ISBN 83-01-04367-9.
  • Ruszczyc Jan: Asembler 6502. Warszawa: SOETO, 1987. Informatyka Mikrokomputerowa. Atari / Stołeczny Ośrodek Elektronicznej Techniki Obliczeniowej.
  • Struble George W: Wprowadzenie do programowania w języku asemblera (z ang. przeł. Zofia Dzieniszewska, Ryszard Dzieniszewski, Anna Niemiec). Wariant tytułu Assembler language programming. Warszawa: Wydawnictwa Naukowo-Techniczne, 1982. ISBN 83-204-0398-7.
  • Wróbel Eugeniusz: Asembler 8086/88. Warszawa: Wydawnictwa Naukowo-Techniczne, 1990. ISBN 83-204-1224-2.
  • Wróbel Eugeniusz: Programowanie w języku asemblera MASM. Gliwice: Wydawnictwo Politechniki Śląskiej, 2006. ISBN 83-7335-313-5.
  • Wróblewski Piotr: Od C do Asemblera:, czyli jak skutecznie programować interface użytkownika. Gliwice: Helion, 1992. ISBN 83-85701-00-1.

edytuj Zobacz też

Wikibooks
Zobacz publikację na Wikibooks:
Asembler

edytuj Linki zewnętrzne