Što je statusni registar?

Statusni registar – također poznat kao registar zastavice, riječ statusa programa i registar koda stanja – definiran je kao skup bitova zastavice unutar procesora. Registar je procesorski sklop i vrlo je sličan memorijskoj lokaciji, što znači da se podaci mogu pisati i čitati iz njega. Za razliku od memorijske lokacije, statusni registar nema često adresu jer je mikroprocesor koristi interno. U središnjoj procesorskoj jedinici (CPU) koja je 8-bitna, bit registra statusa može se postaviti, jednak broju 1, ili obrisati, jednak broju 0, prema različitim rezultatima rada procesora. Procesor ponekad sam postavlja ili briše bitove, ali drugi put određena programska instrukcija postavlja ili briše bitove.

Bitovi statusnog registra također se nazivaju zastavice ili bitovi zastavice, a programator ih koristi za određene programske svrhe. Svaka zastavica u statusnom registru ima jedinstvenu svrhu. Oznaka prijenosa postavlja se ako je prethodna operacija dovela do prelijevanja sedmog bita — ili negativne zastavice — ili je dovela do prelijevanja oznake za prijenos. Postavlja se tijekom smjena logike, usporedbe i aritmetike. Oznaka nula postavlja se ako je rezultat posljednje operacije bio 0.

Oznaka nazvana “onemogućavanje prekida” djeluje tako što dopušta ili onemogućuje rad prekida, koji su upute koje privremeno zaustavljaju određene operacije kako bi se mogle izvesti druge operacije. Kada se ova određena zastavica postavi, prekidi ne smiju raditi, ali kada je jasna, prekidi su dopušteni. Druga zastavica nazvana decimalna zastavica omogućuje procesoru da slijedi napredniji binarni način za izvođenje besprijekornih aritmetičkih jednadžbi. Kada se zastavica postavi, koristi ovaj napredni binarni način rada. Drugi bit registra je bit zastave prekida, koji se postavlja kada se izvrši naredba Force Interrupt (BRK).

Oznaka preljeva postavlja se tijekom aritmetičkih operacija ako operacija daje nevažeći rezultat. Negativna zastavica se postavlja ako je rezultat posljednje operacije bio postavljen na 1. Posljednja zastavica, nazvana bit 5, je bezimena i uvijek je postavljena na 1. Programeri u biti nemaju koristi za ovaj određeni bit.

FLAGS registar je jedan primjer statusnog registra koji se koristio u određenim središnjim procesorskim jedinicama i sadržavao je trenutna stanja procesora. Bio je širok 16 bita, a naslijedili su ga EFLAGS i RFLAGS, 32-bitni i 64-bitni registar. Registar FLAGS je, međutim, imao neke zastavice koje su se razlikovale od izvornog 8-bitnog registra, uključujući oznaku parnosti, pomoćnu zastavu i zastavu zamke.