Vad är ett statusregister?
Statusregistret - även känt som flaggregister, programstatusord och tillståndskodregister - definieras som ett kollektiv av flaggbitar i en processor. Ett register är en processorkrets och liknar en minnesplats, vilket betyder att data kan skrivas och läsas från det. Till skillnad från en minnesplats har statusregistret inte ofta en adress eftersom mikroprocessorn använder den internt. I en centralbearbetningsenhet (CPU) som är 8-bitar, kan en statusregistreringsbit ställas in , lika med siffran 1, eller rensas , lika med antalet 0, genom olika processoroperationsresultat. Processorn ställer eller rensar ibland själva bitarna, men andra gånger ställer eller rensar en viss programinstruktion bitarna.
Statusregisterbitar kallas också flaggor eller flaggbitar och används av programmeraren för vissa programmeringsändamål. Varje flagga i ett statusregister har ett unikt syfte. Bärflaggan ställer in om en tidigare operation gjorde den sjunde biten - eller negativa flaggan - överflöde eller gjorde att bockflaggan var underflöde. Den ställer in under förändringar av logik, jämförelse och aritmetik. Nollflagg anger om det senaste operationsresultatet var 0.
En flagga som kallas “interrupt disable” fungerar genom att tillåta eller avvisa driften av avbrott, vilket är instruktioner som tillfälligt stoppar vissa operationer så att andra operationer kan utföras. När denna speciella flagga sätter tillåts inte avbrott att fungera, men när det är klart tillåts avbrott. En annan flagga som kallas decimalflaggan tillåter processorn att följa ett mer avancerat binärt läge för att utföra felfri aritmetiska ekvationer. När flaggan sätts använder den detta avancerade binära läget. En annan registerbit är break flag-biten, som ställer in när kommandot Force Interrupt (BRK) körs.
En översvämningsflagg ställs in under aritmetikoperationer om en operation ger ett ogiltigt resultat. Den negativa flaggan ställer in om den senaste operationens resultat hade satt den till 1. En sista flagga, kallad bit 5, är namnlös och är alltid inställd på 1. Programmerare har i huvudsak ingen användning för denna speciella bit.
FLAGS-registret är ett exempel på ett statusregister som användes i vissa centrala processorenheter och innehöll en processors nuvarande tillstånd. Den var 16 bitar bred och efterföljdes av EFLAGS och RFLAGS, ett 32-bitarsregister respektive 64-bitarsregister. FLAGS-registret hade dock några flaggor som skilde sig från det ursprungliga 8-bitarsregistret, inklusive paritetsflaggan, hjälpflaggan och fällflaggan.