·
Index Registers: These are used to provide more flexibility in addressing
modes, allowing the programmer to create a memory address by combining the
contents of an address register with the contents of an index register (with
displacements, increments, decrements, and other options).
Index Registers: These are used to provide more flexibility in addressing
modes, allowing the programmer to create a memory address by combining the
contents of an address register with the contents of an index register (with
displacements, increments, decrements, and other options).
·
Base Registers: Base register also referred to as segment
registers are used to segment memory. Effective addresses are computed
by adding the contents of the base or segment register to the rest of the
effective address computation.
Base Registers: Base register also referred to as segment
registers are used to segment memory. Effective addresses are computed
by adding the contents of the base or segment register to the rest of the
effective address computation.
·
Stack Pointers: Stack pointers are used to implement a processor stack in memory. A
specific stack pointer or address register may be hardwired for certain
instructions. The most common use is to store return addresses, processor state
information, and temporary variables for subroutines.
Stack Pointers: Stack pointers are used to implement a processor stack in memory. A
specific stack pointer or address register may be hardwired for certain
instructions. The most common use is to store return addresses, processor state
information, and temporary variables for subroutines.
·
Accumulators: These are registers that can be used for arithmetic, logical, shift, rotate,
or other similar operations. The first computers typically only had one
accumulator. Many times there were related special purpose registers that
contained the source data for an accumulator.
Accumulators: These are registers that can be used for arithmetic, logical, shift, rotate,
or other similar operations. The first computers typically only had one
accumulator. Many times there were related special purpose registers that
contained the source data for an accumulator.
·
Data Registers: These are used for temporary storage of data, as well as for data
manipulations (arithmetic, logic, etc.). In some processors, all data registers
act in the same manner, while in other processors different operations are
performed are specific registers.
Data Registers: These are used for temporary storage of data, as well as for data
manipulations (arithmetic, logic, etc.). In some processors, all data registers
act in the same manner, while in other processors different operations are
performed are specific registers.
·
Address Registers: Address registers stores the addresses of specific memory locations.
Often many integer and logic operations can be performed on address registers
directly (to allow for computation of addresses).
Address Registers: Address registers stores the addresses of specific memory locations.
Often many integer and logic operations can be performed on address registers
directly (to allow for computation of addresses).
·
Constant Registers: These are special read-only registers that store a constant. Attempts to
write to a constant register are illegal or ignored. Constant registers are
also often used in floating point units to provide such value as pi or e with
additional hidden bits for greater accuracy in computations.
Constant Registers: These are special read-only registers that store a constant. Attempts to
write to a constant register are illegal or ignored. Constant registers are
also often used in floating point units to provide such value as pi or e with
additional hidden bits for greater accuracy in computations.