Specifications

Computer Architecture and Maintenance (G-Scheme-2014)
Many different types of registers are common between most microprocessor designs.
These are:
Program Counter (PC)
This register is used to hold the memory address of the next instruction that has to
executed in a program. This is to ensure the CPU knows at all times where it has
reached, that is able to resume following an execution at the correct point, and that the
program is executed correctly.
Instruction Register (IR)
This is used to hold the current instruction in the processor while it is being decoded
and executed, in order for the speed of the whole execution process to be reduced. This
is because the time needed to access the instruction register is much less than continual
checking of the memory location itself.
Accumulator (A, or ACC)
The accumulator is used to hold the result of operations performed by the arithmetic
and logic unit, as covered in the section on the ALU.
Memory Address Register (MAR)
Used for storage of memory addresses, usually the addresses involved in the
instructions held in the instruction register. The control unit then checks this register
when needing to know which memory address to check or obtain data from.
Memory Buffer Register (MBR)
When an instruction or data is obtained from the memory or elsewhere, it is first placed
in the memory buffer register. The next action to take is then determined and carried
out, and the data is moved on to the desired location.
Flag register / status flags
The flag register is specially designed to contain all the appropriate 1-bit status flags,
which are changed as a result of operations involving the arithmetic and logic unit.
Further information can be found in the section on the ALU.
Index register
A hardware element which holds a number that can be added to (or, in some cases,
subtracted from) the address portion of a computer instruction to form an effective
address. Also known as base register. An index register in a computer's CPU is a
processor register used for modifying operand addresses during the run of a program.
Prepared By – Prof. Manoj.kavedia (9860174297 – 9324258878 ) (www.kavediasir.yolasite.com)
5