The CPU contains various registers that are used for a multitude of purposes. These registers include the data register, address register, program counter, memory data register, accumulator register, index register and memory buffer register.
A register is a high speed storage area inside a central processing unit. It carries out three different functions: fetch, decode and execute. The fetch function is used for getting the instruction from the memory into the processor. The decode function is used for interpreting the instruction. The execute function is used by the CPU. The results or output produced by the CPU are then sent to memory for storage.
Registers fall under three categories: accumulator, general purpose registers and special purpose registers. Examples of special purpose registers include a memory address register, memory buffer register, instruction register and program counter.
An instruction register serves as a storage unit for instructions. The program counter also referred to as the instruction address register counts instructions. The memory address register stores the data or instruction address to be fetched from memory. The memory buffer register stores data and instructions received from or written in memory. The accumulator register is used to store data received from memory. It is also the most frequently used register.