一文搞懂PC、IR和MAR、MDR及其联系

首先分别对上述四个概念进行介绍

PC

PC:程序计数器。用于存放下一条指令的地址,当取完一个字节以后,PC的值会自动加一,为取在下一条指令做准备。

思考:为什么不直接存放下一条指令而存放下一条指令的地址呢?
如果存放地址的话可以很方便的自动加一定位到下一条指令的地址,但是如果存放的是指令的话,那只能在每一天指令的后面加上下一条指令的内容,导致指令长度过长,同时不便于程序转移。

IR

IR:指令寄存器。用于存放当前正在执行的指令。

MAR

MAR:主存地址寄存器。存在于CPU中,存放的是将要访问主存的地址。注意,MAR之中存放的只有地址,即存储单元的索引地址。

MDR

MDR:主存数据寄存器。存在于CPU中,存放的是某一个存储单元。

MAR和MDR功能作用辨析

假设主存是一个含有若干存储单元的存储器,我们这里给存储单元进行标号,0、1、2…,此时MAR的作用就是找到这个标号所对应的单元,但是并不知道这个单元内部的东西。找到这个单元之后,存储器把这个单元里面的数据内容放到MDR中。

四者之间的关系

CPU从PC中取出指令所在的地址单元(取指阶段),之后进行译码,将该地址放进MAR中。MAR找到对应的存储单元,读取数据并将其放到MDR中,此时MDR存放的是指令加数据。之后把指令部分放到IR中进行指令操作,数据放到寄存器或者ACC中计算。
花了10分钟花了一个图,帮助大家理解:
在这里插入图片描述
写在后面
关于PC位数和MAR、MDR位数详解,我放在下一篇文章了:PC、IR位数和MAR、MDR位数

  • 21
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值