Assembler: Porovnání verzí
Bez shrnutí editace |
mBez shrnutí editace |
||
(Není zobrazeno 9 mezilehlých verzí od 3 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
'''Jazyk symbolických adres''' (zkratka '''JSA''' nebo také '''jazyk symbolických instrukcí''' je v informatice nízkoúrovňový programovací jazyk, který je tvořen symbolickou reprezentací jednotlivých strojových instrukcí a konstant potřebných pro vytvoření strojového kódu programu pro daný procesor. Symbolickou reprezentaci tvoří zpravidla výrobce procesoru a je založena na mnemotechnických zkratkách, které vyjadřují, co daná strojová instrukce dělá, označují symbolicky registr, slovní zkratku podmínky a podobně. JSA je proto závislý na konkrétním procesoru a zapsaný program je obtížně přenositelný na jinou platformu (na rozdíl od vysokoúrovňových programovacích jazyků). | |||
== Historie == | == Historie == | ||
Řádek 53: | Řádek 51: | ||
Flat Assembler (FASM) – open source assembler pro procesory x86, sebekompilující | Flat Assembler (FASM) – open source assembler pro procesory x86, sebekompilující | ||
Netwide Assembler (NASM) – open source assembler pro procesory x86, sám napsaný v jazyku C | Netwide Assembler (NASM) – open source assembler pro procesory x86, sám napsaný v jazyku C | ||
GNU Assembler (gas) – součást projektu GNU; je multiplatformní, používá se především pro kód vložený v programech v jazyce C | GNU Assembler (gas) – součást projektu GNU; je multiplatformní, používá se především pro kód vložený v programech v jazyce C | ||
Microsoft Macro Assembler (MASM) – překladač od firmy Microsoft | Microsoft Macro Assembler (MASM) – překladač od firmy Microsoft | ||
Turbo Assembler (TASM) – překladač firmy Borland | Turbo Assembler (TASM) – překladač firmy Borland | ||
[[Otázky k opakování z referátů mikroprocesorové techniky TVY]] | |||
--[[Uživatel:Arni|Arni]] 27. 5. 2010, 13:35 (UTC) | |||
== Použitá literatura == | |||
[http://www.root.cz/clanky/generovani-fraktalu-v-assembleru/ Úvod do mikroprocesoru AT89S8252] | |||
http://conmet.cz/assembler/ | |||
http://assembler.unas.cz/ | |||
http://assembler.navajo.cz/ | |||
Autor: kmirka[http://wiki.sps-pi.com/wiki/Mírka_Karel] - 21.4.2010, oprava 9.5.2010 |
Aktuální verze z 27. 5. 2010, 13:35
Jazyk symbolických adres (zkratka JSA nebo také jazyk symbolických instrukcí je v informatice nízkoúrovňový programovací jazyk, který je tvořen symbolickou reprezentací jednotlivých strojových instrukcí a konstant potřebných pro vytvoření strojového kódu programu pro daný procesor. Symbolickou reprezentaci tvoří zpravidla výrobce procesoru a je založena na mnemotechnických zkratkách, které vyjadřují, co daná strojová instrukce dělá, označují symbolicky registr, slovní zkratku podmínky a podobně. JSA je proto závislý na konkrétním procesoru a zapsaný program je obtížně přenositelný na jinou platformu (na rozdíl od vysokoúrovňových programovacích jazyků).
Historie
JSA se poprvé objevily v 50. letech 20. století, kdy byly označovány jako druhá generace programovacích jazyků. Eliminovaly většinu chyb vznikajících při programování a časovou náročnost první generace programovacích jazyků tím, že odstranily nutnost pamatovat si číselné kódy jednotlivých strojových instrukcí, nutnost vypočítávat adresy skoků a umístění dat a zjednodušením (zkrácením) zápisu programu. Ve své době byly široce využívány pro všechny typy programování. Avšak v 80. letech (u mikropočítačů v 90. letech) byly nahrazeny programovacími jazyky s vyšší úrovní abstrakce, které přinášely vyšší produktivitu programování.
V současné době jsou JSA používány zejména pro přímé ovládání hardware, přístup ke specializovaným instrukcím procesoru nebo pro kritické úseky, kde je nutný vysoký výkon. Typicky se jedná o ovladače zařízení, nízkoúrovňové embedded systémy a operační systémy reálného času.
Pokročilé překladače JSA poskytují doplňující nástroje pro správu a vývoj kódu, řízení překladu programu, a podporu ladění. Mezi hlavní prvky patří také podpora maker, pak nazýváme takový překladač makro assembler.
Terminologie
Anglické slovo assembler znamená sestavovatel a označuje pouze překladač, tj. program, který sestavuje strojový kód. Programovací jazyk zpracovávaný takovým překladačem se označuje JSA v angličtině se jmenuje assembly language.
Exaktní česká terminologie vychází z toho, že assembler označuje pouze překladač, zatímco programovací jazyk označuje výhradně jako jazyk symbolických adres (JSA), kterýžto výraz popisuje základní nabízenou výhodu – odstranění nutnosti ručně propočítávat veškeré adresy při překladu programu.
V praxi se ovšem velmi často (a zcela nesprávně) pro označení JSA používá termín assembler.
Charakteristika
JSA je programovací jazyk nejnižší úrovně a je závislý na strojovém kódu procesoru. Každá rodina procesorů má svůj vlastní odlišný JSA, protože ve strojových instrukcích různých rodin procesorů a možnosti rozdělování a adresování paměti bývají zásadní rozdíly. Každá firma vyrábějící procesory si definuje vlastní pravidla pro JSA svých procesorů, z kterých mohou (ale také nemusejí) vycházet nezávislí autoři a firmy.
Společným rysem drtivé většiny JSA je, že kódovou jednotkou je zde jeden řádek.
Program v JSA se skládá z
překladových direktiv tyto direktivy ovlivňují způsob překladu (například pro jakou verzi procesoru se překládá, zda se ignorují velká a malá písmena, zda se generuje výpis a s jakým stránkováním, atp.). Rovněž označují začátek a konec kódových sekcí.
strojových instrukcí symbolicky zapsané strojové instrukce jsou při překladu nahrazeny odpovídajícím strojovým kódem
definic obsahu paměti můžeme inicializovat obsah paměti, nebo vyhradit v paměti místo pro proměnné
návěstí návěstí umožňují pojmenovat místa v paměti počítače. Návěstí umístěné před instrukcí se používá jako pro definici bodu v programu, na který můžeme skočit, návěstí umístěné před definicí obsahu paměti se používá při odkazování na tuto paměť
maker makra slouží pro nahrazení často používaných sekvencí instrukcí, umožňují zpřehlednit a zjednodušit kód vytvořením pseudoinstrukcí a formalizací často používaných konstrukcí
podmínkových bloků podmínkové bloky dovolují generovat odlišný kód v závislosti na nastavení překladových symbolů, což může být užitečné například při ladění, nebo u kódu určeného pro více platforem
definic překladových symbolů překladové symboly pomáhají při vytváření dobře strukturovaného kódu programu
Překladače JSA
Existuje velké množství překladačů JSA, pro x86 například:
Flat Assembler (FASM) – open source assembler pro procesory x86, sebekompilující
Netwide Assembler (NASM) – open source assembler pro procesory x86, sám napsaný v jazyku C
GNU Assembler (gas) – součást projektu GNU; je multiplatformní, používá se především pro kód vložený v programech v jazyce C
Microsoft Macro Assembler (MASM) – překladač od firmy Microsoft
Turbo Assembler (TASM) – překladač firmy Borland
Otázky k opakování z referátů mikroprocesorové techniky TVY --Arni 27. 5. 2010, 13:35 (UTC)
Použitá literatura
Úvod do mikroprocesoru AT89S8252
Autor: kmirka[1] - 21.4.2010, oprava 9.5.2010