Various CPU Registers
1. Memory Address Register (MAR):
This register
holds the address of memory where CPU wants to read or write data. When CPU
wants to store some data in the memory or reads the data from the memory, it
places the address of the required memory location in the MAR.
2. Memory Buffer Register (MBR):
This register
holds the contents of data or instruction read from, or written in memory. The
contents of instruction placed in this register are transferred to the
Instruction Register, while the contents of data are transferred to the
accumulator or I/O register.
3. I/O address Register (I/O AR):
I/O
Address register is used to specify the address of a particular I/O device.
4. I/O Buffer Register (I/O I3R):
I/O Buffer
Register is used for exchanging data between the I/O module and the processor.
5. Program Counter (PC)
Program Counter
register is also known as Instruction Pointer Register. This register is used
to store the address of the next instruction to be fetched for execution. When
the instruction is fetched, the value of IP is incremented. Thus, this register
always points or holds the address of next instruction to be fetched.
6. Instruction Register (IR):
Once an
instruction is fetched from main memory, it is stored in the Instruction
Register. The control unit takes instruction from this register, decodes and
executes it by sending signals to the appropriate component of computer to
carry out the task.
7. Accumulator Register:
The accumulator
register is located inside the ALU, it is used during arithmetic & logical
operations of ALU. The control unit stores data values fetched from main memory
in the accumulator for arithmetic or logical operation.
8. Stack Control Register:
A stack
represents a set of memory blocks; the data is stored in and retrieved from
these blocks in an order, i.e. First In and Last Out (FILO). The Stack Control
Register is used to manage the stacks in memory. The size of this register is 2
or 4 bytes.
9. Flag Register:
The Flag register
is used to indicate occurrence of a certain condition during an operation of
the CPU. It is a special purpose register with size one byte or two bytes. Each
bit of the flag register constitutes a flag (or alarm), such that the bit value
indicates if a specified condition was encountered while executing an
instruction.