What Is a Status Register?

The status register — also known as flag register, program status word, and condition code register — is defined as a collective of flag bits inside a processor. A register is a processor circuit and is much like a memory location, meaning data could be written and read from it. Unlike a memory location, the status register does not often have an address because the microprocessor uses it internally. In a central processing unit (CPU) that is 8-bit, a status register bit can be set, equal to the number 1, or cleared, equal to the number 0, by assorted processor operation results. The processor sometimes sets or clears the bits itself, but other times, a particular program instruction sets or clears the bits.

Status register bits are also called flags, or flag bits, and are used by the programmer for certain programming purposes. Each flag in a status register has a unique purpose. The carry flag sets if a previous operation made the seventh bit — or negative flag — overflow, or made the carry flag underflow. It sets during shifts of logic, comparison, and arithmetic. Zero flag sets if the most recent operation result was 0.

A flag called “interrupt disable” operates by allowing or disallowing the operation of interrupts, which are instructions that temporarily halt certain operations so other operations can be performed. When this particular flag sets, interrupts are not allowed to operate, but when it is clear, interrupts are allowed. Another flag called the decimal flag allows the processor to follow a more advanced binary mode to perform flawless arithmetic equations. When the flag sets, it uses this advanced binary mode. Another register bit is the break flag bit, which sets when the Force Interrupt (BRK) command is executed.

An overflow flag sets during operations of arithmetic if an operation yields an invalid result. The negative flag sets if the most recent operation’s result had it set to 1. A last flag, called bit 5, is nameless and always set at 1. Programmers essentially have no use for this particular bit.

The FLAGS register is one example of a status register which was used in certain central processor units and contained current states of a processor. It was 16 bits wide and was succeeded by EFLAGS and RFLAGS, a 32-bit register and 64-bit register, respectively. The FLAGS register, however, had some flags that were different from the original 8-bit register, including the parity flag, auxiliary flag, and trap flag.