机组是真滴恶心人。。。
下面的内容来自CSDN 张伟杰的博客
直达:https://blog.csdn.net/zwj_jyzl/article/details/83479942
——————————
CPU主要由运算器、控制器、寄存器组和内部总线构成,我们知道运算器是用来完成运算的,而指令的执行就是在控制器中完成的。
而控制器一般又包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑。更准确的说指令的执行是由指令控制逻辑完成的,下面先看一下指令控制逻辑的组成。

指令控制逻辑的组成
1. 指令寄存器(IR):用来暂存指令,当CPU执行指令时,先把它从内存取到缓冲寄存器中,再送入IR。然后指令译码器从IR中将指令取出来,进而分析指令。
2. 程序计数器(PC):记住它保存的总是将要执行的下一条指令的地址即可。
程序的执行分两种情况:顺序执行和转移执行,如果程序是按顺序执行的,那么程序计数器只需要简单的加1就可以了;但是如果遇到转移指令,下一条指令的地址会根据当前指令的地址加上一个向前或向后的转移位移量得到或者根据转移指令给出的直接转移的地址得到。
3. 地址寄存器(AR):保存当前CPU所访问的内存单元地址。由于内存和CPU在操作速度上的差异,所以需要用AR保存地址信息,知道内存的读写操作完成为止。
4. 指令译码器(ID):用来分析指令。指令包括操作码和地址码两部分,指令译码器就是对操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出控制信号,完成所需功能。

指令的执行过程
指令的执行需要完成取指令、分析指令和执行指令的操作,过程分为:取指令、指令译码、按指令操作码执行、形成下一条指令地址等。
(1)在程序执行之前,会将程序的起始地址送入程序计数器中,该地址在程序加载到内存时确定,所以程序计数器中首先存的是程序第一条指令的地址。将该地址送往地址总线,完成取指操作。
(2)取来的指令暂存到指令寄存器中。
(3)指令译码器从指令寄存器中得到指令,分析指令的操作码和地址码。然后 CPU 根据分析的操作码知道该条指令要进行的操作,根据地址码找到需要的数据,完成指令的执行。
(4)程序计数器加1或根据转移指令得到下一条指令的地址,接下来再进行下一条指令的执行,直到整个程序执行完成。

后语
以上只是本人的一点儿粗鄙理解,如果各位发现有什么不对的地方,请原谅我这个小白并请您及时指出,定不胜感激。
————————————————
版权声明:本文为CSDN博主「张伟杰-Vijay」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zwj_jyzl/java/article/details/83479942

作者:晚空,如若转载,请注明出处:《【自用笔记】指令执行过程》