Kas yra statuso registras?

Būsenos registras – taip pat žinomas kaip vėliavėlės registras, programos būsenos žodis ir sąlygos kodo registras – apibrėžiamas kaip vėliavėlės bitų rinkinys procesoriaus viduje. Registras yra procesoriaus grandinė ir labai panašus į atminties vietą, tai reiškia, kad duomenis galima įrašyti ir nuskaityti iš jo. Skirtingai nuo atminties vietos, būsenos registras dažnai neturi adreso, nes mikroprocesorius jį naudoja viduje. Centriniame procesoriaus bloke (CPU), kuris yra 8 bitų, pagal įvairius procesoriaus operacijos rezultatus gali būti nustatytas būsenos registro bitas, lygus skaičiui 1, arba išvalytas, lygus skaičiui 0. Procesorius kartais nustato arba išvalo bitus pats, bet kartais tam tikros programos instrukcijos nustato arba išvalo bitus.

Būsenos registro bitai taip pat vadinami vėliavėlėmis arba vėliavėlių bitais ir programuotojo juos naudoja tam tikriems programavimo tikslams. Kiekviena būsenos registro vėliavėlė turi unikalią paskirtį. Pernešimo vėliavėlė nustatoma, ar ankstesnė operacija perpildė septintą bitą (arba neigiamą vėliavėlę) arba sumažino pernešimo vėliavėlę. Jis nustatomas keičiant logiką, palyginimą ir aritmetiką. Nulinė vėliavėlė nustatoma, jei paskutinės operacijos rezultatas buvo 0.

Vėliava, vadinama „pertraukimo išjungimu“, veikia leidžiant arba neleidžiant atlikti pertraukimų, o tai yra instrukcijos, laikinai sustabdančios tam tikras operacijas, kad būtų galima atlikti kitas operacijas. Kai nustatoma ši konkreti vėliavėlė, pertraukimai neleidžiami, tačiau kai yra aišku, pertraukimai leidžiami. Kita vėliavėlė, vadinama dešimtaine vėliava, leidžia procesoriui sekti pažangesnį dvejetainį režimą, kad būtų galima atlikti nepriekaištingas aritmetines lygtis. Kai vėliavėlė nustatoma, ji naudoja šį išplėstinį dvejetainį režimą. Kitas registro bitas yra pertraukos vėliavėlės bitas, kuris nustato, kada vykdoma priverstinio pertraukimo (BRK) komanda.

Perpildymo vėliavėlė nustatoma atliekant aritmetines operacijas, jei operacija duoda neteisingą rezultatą. Neigiama vėliavėlė nustatoma, jei paskutinės operacijos rezultatas buvo nustatytas į 1. Paskutinė vėliavėlė, vadinama 5 bitu, yra bevardė ir visada nustatoma kaip 1. Programuotojai iš esmės nenaudoja šio konkretaus bito.

FLAGS registras yra vienas iš būsenos registro, kuris buvo naudojamas tam tikruose centrinio procesoriaus blokuose ir kuriame buvo esamos procesoriaus būsenos, pavyzdys. Jis buvo 16 bitų pločio ir jį pakeitė EFLAGS ir RFLAGS, atitinkamai 32 bitų ir 64 bitų registras. Tačiau FLAGS registre buvo kai kurios vėliavėlės, kurios skyrėsi nuo pradinio 8 bitų registro, įskaitant pariteto vėliavėlę, pagalbinę vėliavėlę ir spąstų vėliavėlę.