程序存储器 指令寄存器 程序计数器(PC,IP) 地址寄存器的区别与联系

先明白定义再说区别和原理:


1、程序存储器(program storage)
  在计算机的主存储器中专门用来存放程序、子程序的一个区域。

2、指令寄存器(IR ):用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

3、程序计数器(PC):为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
  当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。有些机器中也称PC为指令指针IP(Instruction Pointer)

4、地址寄存器:用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止 。
  当CPU和内存进行信息交换,即CPU向内存存/取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用 地址寄存器和数据缓冲寄存器。 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供图片或文件,但我可以回答您的第一个问题和第二个问题: 1. 各寄存器的位数如下: - 程序计数器PC:14位(能够寻址2^14个地址)。 - 指令寄存器IR:18位(指令存储器的字长)。 - 累加器AC:32位(数据存储器的字长)。 - 通用寄存器:32位(数据存储器的字长)。 - 指令存储器地址寄存器IAR:14位(能够寻址2^14个地址)。 - 指令存储器数据寄存器IDR:18位(指令存储器的字长)。 - 数据存储器数据寄存器DDR:32位(数据存储器的字长)。 - 数据存储器地址寄存器DAR:16位(能够寻址2^16个地址)。 2. ADD X(R3) 指令指令周期流程图如下: ``` +-----+-----+-----+ +-----+-----+-----+ +-----+-----+-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----+-----+-----+ +-----+-----+-----+ +-----+-----+-----+ T1 T2 T3 T4 T5 T6 T7 T8 T9 ``` 其中,T1 到 T9 分别代表指令的 9 个时钟周期,具体流程如下: - T1:取指令周期。将 PC 寄存器中的地址送到指令地址寄存器 IAR 中,将指令存储器中的内容送到指令数据寄存器 IDR 中。 - T2:译码周期。将指令数据寄存器 IDR 中的指令译码,得到操作码和寄存器地址。 - T3:地址计算周期。将寄存器 R3 中的内容与 X 相加,得到有效操作数的地址。 - T4:存储器读周期。将有效操作数的地址送到数据存储器地址寄存器 DAR 中,将数据存储器中的内容送到数据存储器数据寄存器 DDR 中。 - T5:执行周期。将累加器 AC0 和 DDR 中的内容相加,将结果送到累加器 AC1 中。 - T6:存储器写周期。将累加器 AC1 中的内容送到数据存储器中有效操作数的地址处。 - T7:时钟周期,无操作。 - T8:时钟周期,无操作。 - T9:时钟周期,无操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值