Co je to stavový registr?
Stavový registr - známý také jako registr příznaků, programové stavové slovo a registr stavových kódů - je definován jako soubor bitů příznaků uvnitř procesoru. Registr je obvod procesoru a je podobně jako umístění v paměti, což znamená, že z něj lze zapisovat a číst data. Na rozdíl od umístění v paměti nemá stavový registr často adresu, protože ji mikroprocesor používá interně. V centrální procesorové jednotce (CPU), která je 8bitová, může být bitem stavového registru nastavena , rovna číslu 1, nebo vymazána , rovna číslu 0, výsledky různých operací procesoru. Procesor někdy nastavuje nebo čistí bity sám, ale jindy konkrétní instrukce programu nastavuje nebo čistí bity.
Bity stavového registru se také nazývají příznaky nebo příznaky a programátor je používá pro určité programovací účely. Každá příznak ve stavovém registru má jedinečný účel. Příznak carry se nastavuje, pokud předchozí operace způsobila přetečení sedmého bitu - nebo záporného příznaku, nebo pokud se příznak carry přenesl pod průtok. Nastavuje se při posunu logiky, srovnání a aritmetiky. Pokud byl poslední výsledek operace 0, nastaví se příznak nuly.
Příznak zvaný „deaktivace přerušení“ funguje tak, že povoluje nebo zakazuje činnost přerušení, což jsou pokyny, které dočasně zastaví určité operace, takže lze provádět další operace. Když se nastaví tento konkrétní příznak, není povoleno přerušení, ale pokud je jasné, jsou přerušení povolena. Další příznak nazývaný desetinná příznak umožňuje procesoru sledovat pokročilejší binární režim a provádět bezchybné aritmetické rovnice. Když je nastaven příznak, použije tento pokročilý binární režim. Dalším registrovým bitem je bit příznaku přerušení, který se nastaví při provedení příkazu Force Interrupt (BRK).
Příznak přetečení se nastaví během operací aritmetiky, pokud operace přinese neplatný výsledek. Negativní příznak se nastaví, pokud byl výsledek poslední operace nastaven na 1. Poslední příznak, nazvaný bit 5, je bezejmenný a vždy nastavený na 1. Programátoři v podstatě pro tento konkrétní bit nepoužívají.
Register FLAGS je jedním z příkladů stavového registru, který byl použit v určitých centrálních procesorových jednotkách a obsahoval aktuální stavy procesoru. Šířka 16 bitů byla následována EFLAGS a RFLAGS, 32bitovým registrem a 64bitovým registrem. Registr FLAGS však měl některé příznaky, které se lišily od původního 8bitového registru, včetně paritní vlajky, pomocné vlajky a příznaku pasti.