![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Tyto stránky jsou věnované základům programování v assembleru. Assembler se dnes využívá především k
programování jednočipů, k programování rychlých částí programu, které musí být např. z důvodu
bezpečnosti co nejrychleji zpracovány a nebo při programování obsluhy hardwarového zařízení.
Samozřejmě je rozdíl mezi programováním jednočipů a PC, ale principy jsou stejné. Vždy můžeme využívat pamětí, registrů, stavových příznaků, ale každé zařízení budeme mít jich jiné množství. Neprve je potřeba vysvětlit základní pojmy a strukturu hardwaru |
Obecnou strukturu mikroprocesoru si z hlediska vnitřní stavby můžeme představitna dvě části. Část sběrnicovou - řadič a část prováděcí ALU - aritmetickologická jednotka. Řadič vybírá instrukce z paměnti a ukládá je do vnitřní fronty, ze které je čte ALU. Řadič také řídí přenos dat po sběrnicích. Obě tyto části pracují na sobě nezávisle a tím se zvyšuje výkon procesoru. Tento optimální stav je narušen příkazem skoku, neboťť v tento okamžik musí řadič vyprázdnit vnitřní frontu a načíst nové instrukce pro následné zpracování ALU.Další důležitou částí jsou registry. To není nic jiného než vnitřní pamět, do kterých je možné ukládat proměné programu, pukud by nestačil počet registrů pro proměnné, pak je možné zapisovat data i přímo do paměti. Zvláštní kapitolou jsou speciální registry. ACC akumulátor - u mikročipů je instrukce prováděna nad akumulátorem a oprandem, u PC (značen AX resp. AXE) umožňuje assembler provádět instrukce nad dvěma oprandy a tento register zrácí svůj původní význam. Register PSW - stavový register, v tento registru se předávají informace o provedených aritmetickologických instrukcí procesoru (bude vysvětleno později). Register DPTR slouží k adresování (k přístopu do) horní části paměti. Na obrázku jsou registry 8 bitové a pomocí nich mohu adresovat pouze oblast paměti 0-FFh. DPTR je 16-ti bitový registr a umožňuje adresovat oblast paměti do FFFFh. Podobně funguje i register SP - ukazatel na zásobník. Zásobník je typ paměti LIFO (Last In First Out) a využívá se např. pro předávání parametrů podprogramu. Register PC je čítač instrukcí programu. Velikost paměti a registrů jsou dány konkrétním typem procesoru.