结论:
PC:程序计数器。用于存放下一条指令的地址,当取完一个字节以后,PC的值会自动加一,为取在下一条指令做准备。位数和MAR位数相同。
这里解释一下为什么相同,已知PC中存放的是下一条指令的地址,就是其在存储器中存放的位置,我们发现,和MAR地址寄存器的定义相同,都是寻找到某个具体的存储单元。
IR: 指令寄存器,用于存放译码之后的指令。字长和指令字长相同。
MDR:主存数据寄存器。位数表示主存一个存储空间的存储字长。
MAR:主存地址寄存器。位数反应存储单元个数,存放的是用于索引存储器的地址,其位数和地址总线位数相同。
这里对MAR和MDR做一个辨析:假设主存是一个含有若干存储单元的存储器,我们这里给存储单元进行标号,0、1、2…,此时MAR的作用就是找到这个标号所对应的单元,但是并不知道这个单元内部的东西。找到这个单元之后,存储器把这个单元内部的数据内容放到MDR中。
补充说明:
存储单元表示存储二进制代码的容器,一个存储单元可以存储一连串的二进制代码,这串二进制代码被称为一个存储字,代码的位数为存储字长。
关于PC、MAR和MDR的详细介绍和他们之间的联系以及内部数据的流动我放在这篇文章中讲一下,不明白的同学可以再去看一下:一文搞懂PC、IR和MAR、MDR及其联系