Assembler

Z Wikipedie, otevřené encyklopedie

Assembler je programovací jazyk velice blízký strojovému kódu, též se nazývá jazyk symbolických adres. Název assembler se používá i pro překladač, který tento jazyk překládá do strojového kódu.

Assembler je programovací jazyk nejnižší úrovně, je strojově závislý a v podstatě každý procesor má svůj vlastní odlišný assembler.

Assembler tvoří pouze zástupné symboly, které přímo odpovídají strojovému kódu. Mnemotechnické symboly se mnohem lépe zapamatovávají, než nicneříkající čísla strojového kódu. Další výhodou je používání symbolů pro adresy dat a instrukcí, které se při překladu nahradí skutečnou aktuální adresou.

Například počítač s odpovídajícím procesorem umí provést následující strojovou instrukci procesoru x86/i386 (např. Intel 80386):

10110000 01100001

Pro programátora je ale mnohem snazší používat ekvivalentní zápis v assembleru:

mov  al, 61h

který znamená přesun hexadecimální hodnoty 61 (97 dekadicky) do registru procesoru pojmenovaného „al“. Název instrukce „mov“ (zkratka anglického slova movepřesun) je následován seznamem parametrů. Tak vypadá typická instrukce assembleru.

Překladače také obvykle poskytují tzv. makra, která nahrazují často používané posloupnosti jednotlivých instrukcí. Další součástí assembleru bývají direktivy (také pseudoinstrukce), které umožňují ovlivňovat překlad, vyhrazovat místo v paměti pro proměnné nebo manipulovat s čítačem adres.

[editovat] Terminologie

Anglické slovo assembler znamená sestavovatel a původně označuje pouze překladač, program, který sestavuje strojový kód. Programovací jazyk zpracovávaný takovým překladačem se v angličtině jmenuje prostě assembly language.

Exaktní česká terminologie z tohoto vychází a jako assembler označuje pouze překladač, zatímco programovací jazyk se nazývá výhradně jazyk symbolických adres, kterýžto výraz popisuje základní nabízenou výhodu – odstranění nutnosti ručně přepočítávat veškeré adresy při změně programu. V praxi se ovšem toto pravidlo nepoužívá a termín assembler se zcela běžně používá pro pojmenování programovacího jazyka.

[editovat] Překladače assembleru

Existuje velké množství překladačů assembleru, pro x86 například:


Programovací jazyky

ABAP | Ada | AWK | Assembler | C | C++ | C# | COBOL | ColdFusion | Clean | D | Eiffel | Erlang | Flex | Fortran | JADE | Java | JavaScript | Lisp | Lua | Oberon | Object Pascal | Objective-C | Pascal | Perl | PHP | Python | REALbasic | REBOL | RPG | Ruby | SQL / PL/SQL | Tcl / Tcl/Tk | Visual Basic / VBScript | VB.NET | Visual FoxPro

Akademické: APL / J | Baltazar | Baltík | Karel | OCaml | Haskell | Scheme | Smalltalk | Logo | MATLAB | Mathematica | ML | Prolog

Ostatní: ALGOL | BASIC | Clipper | Forth | Goedel | Limbo | Miranda | Modula-2 / Modula-3 | MUMPS | PL/1 | Simula 67 | Whitespace