Registrul de stare – cunoscut și sub numele de registru de flag, cuvânt de stare program și registru de cod de condiție – este definit ca un colectiv de biți de semnalizare în interiorul unui procesor. Un registru este un circuit de procesor și seamănă mult cu o locație de memorie, ceea ce înseamnă că datele pot fi scrise și citite din el. Spre deosebire de o locație de memorie, registrul de stare nu are adesea o adresă deoarece microprocesorul o folosește intern. Într-o unitate centrală de procesare (CPU) care este de 8 biți, un bit de registru de stare poate fi setat, egal cu numărul 1, sau șters, egal cu numărul 0, prin rezultatele operațiunii asortate ale procesorului. Procesorul uneori setează sau șterge biții în sine, dar alteori, o anumită instrucțiune de program setează sau șterge biții.
Biții de registru de stare sunt numiți și steaguri sau biți de steaguri și sunt utilizați de programator în anumite scopuri de programare. Fiecare steag dintr-un registru de stare are un scop unic. Indicatorul de transport se stabilește dacă o operațiune anterioară a făcut ca al șaptelea bit – sau steag negativ – să depășească, sau a făcut ca indicatorul de transport să depășească. Se stabilește în timpul schimburilor de logică, comparație și aritmetică. Indicatorul zero este setat dacă rezultatul celei mai recente operații a fost 0.
Un indicator numit „dezactivare întrerupere” operează permițând sau interzicând operarea întreruperilor, care sunt instrucțiuni care opresc temporar anumite operațiuni, astfel încât să poată fi efectuate alte operațiuni. Atunci când acest indicator specific se setează, întreruperile nu au voie să funcționeze, dar când este clar, întreruperile sunt permise. Un alt steag numit steag zecimal permite procesorului să urmeze un mod binar mai avansat pentru a efectua ecuații aritmetice impecabile. Când steagul se setează, folosește acest mod binar avansat. Un alt bit de registru este bitul flag break, care se stabilește când este executată comanda Force Interrupt (BRK).
În timpul operațiilor de aritmetică se setează un indicator de depășire dacă o operație dă un rezultat nevalid. Indicatorul negativ se setează dacă rezultatul celei mai recente operații a fost setat la 1. Un ultim indicator, numit bit 5, este fără nume și întotdeauna setat la 1. Programatorii nu au, în esență, niciun folos pentru acest bit anume.
Registrul FLAGS este un exemplu de registru de stare care a fost utilizat în anumite unități de procesor central și conținea stările curente ale unui procesor. Avea o lățime de 16 biți și a fost succedat de EFLAGS și RFLAGS, un registru de 32 de biți și, respectiv, de 64 de biți. Registrul FLAGS, totuși, a avut unele steaguri care erau diferite de registrul original de 8 biți, inclusiv steagul de paritate, steagul auxiliar și steagul de capcană.