[ad_1]
The instruction register is a component of the CPU that holds the programming instruction to be executed next. It can hold the address or instruction itself and is fed new instructions through the program counter. The instructions are low-level assembly language commands that are eventually translated into machine code. Once referenced, the instruction is passed to the instruction decoder and executed while the program counter is incremented to point to the next instruction.
In terms of computer hardware, an instruction register is an item in the central processing unit (CPU) of a computer or other device that contains the programming instruction that will be executed at the start of the next clock cycle as dictated by other parts of the processor. Other elements of the CPU, such as the instruction decoder, rely on the instruction register to hold this information so it can be decoded, resolved, and possibly executed. With some types of microprocessor architecture, there can be more than one instruction register so that multiple instructions can be processed simultaneously, forming an assembly-line style of logic known as a pipeline. Generally, new instructions are fed to the instruction register through another part of the CPU known as the program counter, which serves a very similar purpose but can move on to the next instruction as the information the instruction register holds is being executed.
A register is a series of physical switches on a microprocessor or circuit board that can be turned on or off, making each switch equivalent to one bit. When multiple switches, also called latches, are connected, they are capable of storing binary data such as numbers, which can be transformed into memory addresses or instruction codes. Inside the CPU, the instruction register can hold the address in computer memory of the instruction being executed or, for efficiency, it can hold the instruction itself. This information is passed to the register via another register known as the program counter, which in most cases jumps forward to the next instruction to be executed after passing the current instruction.
The types of instructions processed by the registers are usually low-level assembly language commands that are eventually translated into machine code or byte code. These are markedly different from instructions in higher-level programming languages, because assembly instructions operate on a very small and straightforward scale. An example is a high-level line of code that adds two numbers and stores the results in a variable, which requires only a single line of high-level code to express. When the code is compiled, a dozen or more instructions can be generated to complete the task, each of which is something as simple as mixing values between your computer’s random access memory (RAM) and a utility register.
Once an instruction is referenced by the instruction register, it is passed to the instruction decoder so that the instruction can be converted into machine code. References to memory locations that might contain variables or other information are resolved, and that information is sometimes placed in other registers. Finally, the actual statement will be executed. During this time, the program counter will be incremented by the CPU to point to the next instruction which will be held by the instruction register so that the process can repeat until the entire program has been executed.
[ad_2]