【摘要】:表5-1中的第二条指令ADD是一条访内指令,指令周期如图5-6所示。图5-6ADD指令的指令周期第一个CPU周期,即取指令阶段,其过程完全与INC指令相同。第三个CPU周期,CPU从内存2000H单元中取出操作数,并与AL中的内容相加,结果存在AL中。取指令阶段结束时,指令寄存器IR中已经存放好ADD指令并进行了指令译码,译码结果已送往操作控制器。同时,指令地址计数器的内容又加1,变为2012H,为取第三条指令做好准备。至此,ADD指令执行完毕。
表5-1中的第二条指令ADD是一条访内指令,指令周期如图5-6所示。它需要三个CPU周期,其中第一个CPU周期为取指令阶段,第二、第三个CPU周期为执行指令阶段。
图5-6 ADD指令的指令周期
第一个CPU周期,即取指令阶段,其过程完全与INC指令相同。我们看到,取出第一条INC指令时,IP的内容已经加1变成2011H,该地址存放着指令ADD AL,[2000H]。这样,取第二条指令时,取指令的过程和数据通路完全与第一条指令相同。
第二个CPU周期,CPU只做一件事,将操作数地址2000H送往地址寄存器。
第三个CPU周期,CPU从内存2000H单元中取出操作数,并与AL中的内容相加,结果存在AL中。
CPU具体的操作步骤如图5-7所示。
图5-7 ADD指令的操作步骤
1.取指令阶段(www.xing528.com)
CPU的动作和INC指令的前6步相同。取指令阶段结束时,指令寄存器IR中已经存放好ADD指令并进行了指令译码,译码结果已送往操作控制器。同时,指令地址计数器的内容又加1,变为2012H,为取第三条指令做好准备。
2.送操作数地址
CPU的动作如下所述:
①操作控制器发出操作控制信号。
②把IR中的地址码部分2000H装入地址缓冲寄存器AR。
3.取出操作数并相加
CPU的动作如下所述:
①从内存2000H单元中读出操作数10H,传送到数据缓冲寄存器DR。
②由DR送来的操作数10H送往ALU寄存器,和累加器中的内容相加,运算结果放回累加器,累加器中原来的值被冲掉。至此,ADD指令执行完毕。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。