A register is a very fast access place on a computer that can only be accessed by the processor. A register is simply a short-term memory that is used exclusively by a particular processor. Most registers can be write-only or read-only, but some registers contain hardware commands, and are generally read-only. In a multithreaded program, a register can store multiple instructions that are executed in quick succession, depending on the instruction set. A register is one of the most important sections of a microprocessor.
Instructions are executed by the CPU (across multiple processors) by executing the appropriate instruction. Instructions are represented as values which the register will translate into actual memory at the time the instruction is received. Instructions are stored in a register, which contains two to eight different instructions (depending on the instruction set). The register can only store one instruction at any given time.
The PC is the program counter, whose value is decremented when execution of the current instruction has finished and becomes one when the next instruction is executed. Instruction decoders convert a PC register value to an address that is used for computing the contents of the register. The contents of the register are computed by xoring the result with the current memory address. The two parts of the equation are then used to shift the contents of the register into the target memory location.
A program counter is an accumulator that stores a result that is relative to the current instruction pointer. The PC or program counter can be thought of as a counter that counts down from the current instruction pointer (the start of the execution cycle). As instructions are executed, the PC is updated to reflect the instructions executed so far, and new instructions are added to the stack. A register also keeps a count in its counters; the more counters a register has, the longer the execution of a particular instruction will take.
Modern processors use registers that can be accessed by the user-accessible register. This means that two different processes could execute on the same PC. Modern processors have instructions that allow multiple processes to share the execution of a register.
There are three types of PC registers: pc, mlx, and rax. pc is the low-level instruction register used for execution of lower level software. mlx is the main register used by the microprocessor. rax is the higher-level registry instruction used by the central processing unit. All three of these PC registers must be maintained during execution of instructions. Instructions for input/output structures are stored in the memory address register, while constant/dynamic data is stored in the CPU register.