The cpu accesses the main memory according to the contents of the instruction counter. The information retrieved is the instruction. The instruction counter is where the address of the unit where the next instruction is located is stored. Before the program starts executing, its starting address must be fed into the instruction counter.
#The operating environment of this article: windows10 system, thinkpad t480 computer.
The cpu accesses the main memory according to the contents of the instruction counter. The information retrieved is the instruction.
Instruction counter introduction:
The program counter is used to store the address of the unit where the next instruction is located.
When executing an instruction, the instruction first needs to be fetched from the memory to the instruction register according to the instruction address stored in the PC. This process is called "instruction fetching". At the same time, the address in the PC is either automatically incremented by 1 or the address of the next instruction is given by the branch pointer. After that, the instructions are analyzed and executed. Complete the execution of the first instruction, and then fetch the address of the second instruction according to the PC, and so on, executing each instruction.
In order to ensure that the program (understood as a process in the operating system) can be executed continuously, the processor must have some means to determine the address of the next instruction. The program counter plays this role, so it is often called the instruction counter. Before the program starts executing, its starting address, that is, the address of the memory unit where the first instruction of the program is located, must be sent to the program counter, so the content of the program counter is the address of an instruction fetched from memory.
When an instruction is executed, the processor will automatically modify the contents of the PC, that is, each time an instruction is executed, the PC will increase by an amount. This amount is equal to the number of bytes contained in the instruction, so that it will always be executed. The address of the next instruction. Since most instructions are executed sequentially, the modification process is usually simply adding 1 to the PC.
However, when encountering a transfer instruction such as a JMP (jump, full name in foreign language: JUMP) instruction, the address of the subsequent instruction (that is, the content of the PC) must be obtained from the address field in the instruction register. In this case, the next instruction fetched from memory will be specified by a branch instruction, rather than fetched sequentially as usual. Therefore, the structure of the program counter should be a structure with two functions: registering information and counting.
(Learning video sharing: Programming video)
The above is the detailed content of What information does the CPU retrieve when accessing main memory based on the contents of the instruction counter?. For more information, please follow other related articles on the PHP Chinese website!