文章目录
1,主存储器:

(1)存储数据:
需要CPU给主存储器一个要存储数据的指令,然后将数据的地址放进地址寄存器,接着将数据放进数据寄存器。
这样存储体就可以通过提供的这三个东西来存储。
(2)取出数据:
CPU将想要取出的数据的地址交给地址寄存器,并且CPU告诉存储器这次要执行的是读操作。然后存储体就会通过地址将对应的数据放在数据寄存器中,然后CPU就可以通过线路将数据寄存器中的数据取走。
(3)存储体:

存储单元:在这个存储单元中放一串二进制代码。
存储字:这就是存储单元中放的二进制代码的组合。
存储字长:存储字的二进制代码的长度。
在MAR(地址寄存器)中,它的位数与存储体中的存储单元的个数是对应的(MAR中也是有好几位的,只是用的时候将它转换成10进制的使用)。ex:地址存储器中的数都是4位的,那么存储体中的存储单元的个数就是2的4次方。相应的,如果存储体中的存储单元的个数是2的5次方,那么地址寄存器中的二进制的位数就是5.
在MDR(数据寄存器)中,它的位数是和存储单元中的存储字长有关系的。如果MDR中的二进制都是16位的,那么代表着存储单元中存储字长就是16位的。
(注意上面的单位都是比特,不是字节。)
2,运算器:
运算器的作用就是实现算术运算和逻辑运算。

其中ALU的结构是十分复杂的,因为它负责运算。其他三个只负责存储。
3,控制器:


执行一条指令:先从PC中根据下一条指令的地址来找指令。然后将指令放在IR中。最后CU来分析指令并且执行指令。
4,举例子:

通过编译放进主存储器中。

(前面的是机器指令,后面的是数据存储。指令分为操作码和地址码两个部分,加起来正好与数据的字长一样,16比特。所以存储字长就是16比特。操作的时候CPU会自动将指令拆成操作码和地址码。)
以上是存储操作。
接下来开始执行:
指令1:
最开始:PC = 0,指向的是第一条指令的存储地址。
前面提到过,PC有自动加一的功能,当已经完成了地址为0的指令后,就会指向1; ACC = 2
指令2:
PC+1,执行了2; ACC = 6
指令3:
PC+1,得PC = 3,ACC = 7.
指令4:
指令5:

PC+1 = 4

在现实中,MAR和MDR通常会被集成在CPU中,所以以后遇到了可以理解。
————王道视频学习笔记