www.amapro.cz & David Bazala [Programování]

Otevře webové stránky AmaPro


Otevře hlavní stránku společnosti AmaPro
Internetové stránky určené pro studenty středních a vysokých odborných škol.


amapro.cz/odkazy Projekt eliminuje vyhledávání klíčových slov na komerčních stránkách a v e-schopech.



Nový projekt AmaPro Assembler

Assembler je programovací jazyk strojového kódu procesoru. Strojový kód je nejnižší forma programového řízení procesoru. Jedná se o posloupnosti hexadecimálních čísel, která tvoří program nebo data. Protože forma čísel je pro programátora značně nepřehledná, byly instrukcím přiděleny třímístné písemné kódy. Assembler je převaděč těchto písmených kódů na hexadecimální číslo a na opak. Při listování v programu se čísla převedou na instrukci a dle formátu jsou akceptována nasledující data.

Například je v paměti počítače číselná kombinace:

21 e8 6a po assemlerovém převodu JMP $6ae8

Pro programátora je snadnější si pamatovat JMP (jump=skok) než číselný kód 21. Převodník assembleru rozpozná začátky a konce instrukcí a zobrazuje je po řádcích, čímž tak zlepšuje přehlednost programu. Assemler sám přičítá adresy při psaní instrukcí, dokáže nahradit zdlouhavé číselné kódy přehlednějšímy znaky a pod.

Základním stavebním kamenem assembleru je:

adresa - - - instrukce - - - data - - -;poznámka

Příklad:

$a000 LDA #23 ; nastav obsah akumulátoru na 23 hexa

Adresa informuje o umístění v paměti. Je nutno si uvědomit v jaké části či bloku v paměti se pohybujeme. Assemler zpravidla neukazuje plnou adresu, ale jen konec (nižší bity adresace). Na začátku assembler vypíše umístění vyšších bitů adresace, aby specifikoval umístění. Instrukce je příkaz, který chceme, aby procesor vykonal. Každý procesor obsahuje své instrukce, které ho také klasifikují. Ačkoliv jsou základní instrukce stejné u všech procesorů, liší se právě speciálními instrukcemi. Jak se vyvíjely procesory, rostl počet speciálních instrukcí. Speciálnímy instrukcemi jsou míněny především matematické operace. Nejmodernější počítače již neobsahují matematický kooprocesor, neboť je inplantovaný v čipu procesoru. Programátor zadává instrukce tří písmennou zkratkou, která by měla slangově připomínat požadovaný krok, který má procesor vykonat. Data jsou specifikou pro instukci. Data mohou obsahovat adresy, položky, znaky a pod. Některé instrukce nemají položku data, ale ty které ji mají musí ji dostat. Vynecha

Ukázka výpisu paměti v assemleru:

a000 LDA $0022 ; načtení obsahu paměti na adrese $0022 do akumulátoru

a003 STA $011f ; uložení obsahu akumulátoru na adresu $011f

a006 JSP $fef5 ; odskok do podprogramu na adrese $fef5

a009 LDY $0058 ; načtení obsahu peměti na adrese $0058 do registru Y

a00c AND %00100101 ; logická operace AND s posledním uloženým obsahem v akumulátoru

a00f RTS ; návrat z posledního odskoku JSR


Používáme-li inteligentnějšího assembleru, můžeme si dělat za instrukcemi poznámky, které opět zlepšují přehlednost v programu. Co je to inteligentnější assembler? Úplně klasický assemblerový převaděč nám převádí čísla na assemblerový jazyk. Nebo-li zkutečně ukazuje, to co se na požadované adrese vyskytuje. Neumožňuje zápis poznámek a blokový výpis pro oddělené programi. Inteligentnější assembler dovoluje mnohem více. Jeho hlavní nevýhodou je to, že výpis programu se ukládá do operační paměti a teprve před požadavkem na spuštění se kompiluje na požadované místo v paměti a po kompilaci se spustí. Inteligentnější assembler dovoluje tvořit proměnné, nazývat podprogrami názvy a pod. Je proto efektivnější pro tvorbu programů v assemleru, než pouhý výpisový assemblerový převaděč.

Vzhledem k velkému množství dat a insrukcí se stávají programi v assembleru nepřehledné. Je proto nutné si najít ideální cestu organizace dat a programů a zajistit si orientační schopnost ve větším programu. Existuje mnoho metod, které lze aplikovat. Ovšem všechny metody mají jedno společné a to je tvorba subrutin. Subrutina je malá rutina, která se používá jako univerzální program. Subrutina je programová jednotka, která má za úkol provést určitý úkol či operaci. Veškeré velké programy jsou tvořeny stovkami subrutin. Dokonce rutiny v BIOSu pracují jako subrutiny. Výhodou subrutiny je to, že ve svém programu ji závoláte příkazem z jednoho řádku, takže nezabírá místo ve výpisu našeho programu. Subrutinu je nutno chápat jeko černou skříňku. Nesmí totiš zbytečně zatěžovat programátora.

Celou problematiku je možno vyjádřit formulací:

vstupní data - subrutina - Výstupní data

(naše požadavky) - (provedení) - (výsledek)

To co se děje v subrutině nás nemusí zajímat, neboť budeme značně vytíženi orientací se v hlavním programu.

Programování a strategie strojového kódu

Jako programátor strojového kódu se dnes v době kvalitních vyšších programovacích jazyků pouštíme do nerovnoměrného boje. To u čeho strávíme mnoho času, bude pro jiného otázka jednoho příkazu. Jedinou výhodou je možnost plného pohybu v operační paměti. A to je základní nutnost programátora stroj. kódu, organizace paměti.

Nevyhnutelností je příprava na papír. Jedná se jak o blokovou, tak i o skicu vizáže programu. U blokové přípravy si nahradíme rutiny škatulkami, u kterých si uvedeme vstupně/výstupní parametry. Jedná se o registry, do kterých je nutno zadat data, u výstupu si poznačíme, ve kterých registrech se objeví výsledek operace a především ty registry, u nichž dojde ke změně obsahu.



Abecední seznam všech článků Vyhledání pojmů ve článcích
Otevře stránky Fulltextové vyhledávání na celém serveru
Digitalizované odborné knihy
Velká encyklopedie pojmů a zkratek
Česko - anglicko - německý technický slovník
Klasický katalog firem, služeb a stránek
OnLine překladač  vět a textů (nepoužívá Google)
Stránky pro chvíle oddechu od studia, relaxace
Katalog českých firem dle technologií
Internetový odkazník
Otevře hlavní stranu pro oddíl programování




 Wikipedie   Seznam stránek   Kapitoly témat   Významné servery   Klíčová slova 








Otevře hlavní stranu společnosti AmaPro

Všechna práva vyhrazena. Určeno jen pro osobní využití. Bez předchozího písemného souhlasu správce www.amapro.cz je zakázána jakákoli další publikace, přetištění nebo distribuce jakéhokoli materiálu nebo části materiálu zveřejněného na www.amapro.cz a to včetně šíření prostřednictvím elektronické pošty. Články, jejichž přímým autorem není amapro.cz lze publikovat pouze se souhlasem jejich majitelů či administrátoru příslušného webu.