Kaj je register statusa?

Register statusa – znan tudi kot register zastav, beseda statusa programa in register kode stanja – je opredeljen kot skupek bitov zastave znotraj procesorja. Register je procesorsko vezje in je zelo podoben pomnilniški lokaciji, kar pomeni, da se lahko iz njega zapisujejo in berejo podatki. Za razliko od pomnilniške lokacije register statusa pogosto nima naslova, ker ga mikroprocesor uporablja interno. V osrednji procesni enoti (CPU), ki je 8-bitna, je mogoče nastaviti bit statusnega registra, enak številki 1, ali počistiti, enak številki 0, z različnimi rezultati delovanja procesorja. Procesor včasih sam nastavi ali počisti bite, včasih pa določeno programsko navodilo nastavi ali počisti bite.

Biti statusnega registra se imenujejo tudi zastavice ali zastavični biti in jih programer uporablja za določene programske namene. Vsaka zastavica v statusnem registru ima edinstven namen. Oznaka za prenašanje se nastavi, če je predhodna operacija povzročila prelivanje sedmega bita – ali negativne zastavice – ali je povzročila prenizko prelivanje zastavice za prenašanje. Določi se med premiki logike, primerjave in aritmetike. Zastavica nič se nastavi, če je bil zadnji rezultat operacije 0.

Oznaka, imenovana »onemogočanje prekinitve«, deluje tako, da dovoli ali onemogoči delovanje prekinitev, ki so navodila, ki začasno ustavijo določene operacije, da se lahko izvedejo druge operacije. Ko je določena zastavica določena, prekinitve ne smejo delovati, ko pa je jasna, so prekinitve dovoljene. Druga zastavica, imenovana decimalna zastava, omogoča procesorju, da sledi naprednejšemu binarnemu načinu za izvajanje brezhibnih aritmetičnih enačb. Ko se zastavica nastavi, uporablja ta napredni binarni način. Drug registrski bit je bit zastave prekinitve, ki se nastavi, ko se izvede ukaz Force Interrupt (BRK).

Zastavica prelivanja se nastavi med aritmetičnimi operacijami, če operacija prinese neveljaven rezultat. Negativna zastavica se nastavi, če je bil rezultat zadnje operacije nastavljen na 1. Zadnja zastavica, imenovana bit 5, je brez imena in je vedno nastavljena na 1. Programerji v bistvu ne uporabljajo tega posebnega bita.

Register FLAGS je en primer statusnega registra, ki je bil uporabljen v nekaterih centralnih procesorskih enotah in je vseboval trenutna stanja procesorja. Bil je širok 16 bitov in sta ga nasledila EFLAGS in RFLAGS, 32-bitni in 64-bitni register. Register FLAGS pa je imel nekaj zastav, ki so se razlikovale od prvotnega 8-bitnega registra, vključno z zastavico parnosti, pomožno zastavico in zastavo pasti.