运行
一,概述
当开始运行程序时,首先应把第一条指令所在存储单元的地址赋予程序计数器PC,然后机器就进入了取指阶段。在取指阶段,cpu从内存中读取的内容必为指令。然后送往数据缓冲寄存器DR,经DR送往指令寄存器IR。之后由指令译码器ID对IR中的指令的操作码字段
进行译码,然后又PLA发出执行该指令所需要的各种微操作控制信号。取指阶段到此结束。之后,机器就进入执行指令阶段,这时CPU便执行指令所规定的具体操作。当一条指令执行完毕后,即转入下一条指令的取指阶段,如此循环往复,知道遇到暂停或程序结束为止!
注明:
操作码字段
:指令通常由操作码(Operation Code)和操作数(Operand)两部分组成。操作码表示该指令完成的操作,操作数表示菜价操作的数本身或操作数所在的地址。指令根据其所含内容的不同而有单字节指令、双字节指令以及多字节指令等,因此,计算机在执行一条指令时,就有可能要处理一到多个不等字节数目的代码信息,包括操作码、操作数或操作数的地址。
二,工作过程
我们在一台简化的8位机上完成“6+5”操作为例,来说明计算机的工作过程。
下表是计算机执行“6+5”操作的机器语言和汇编语言:
我们将采用图文结合的方式来讲解计算机执行“6+5”操作的具体过程:
这是计算机取第一条指令的操作过程示意图
过程如下:
当开始执行程序时,将第一条指令所在存储单元的地址0000H送到程序计数器PC中,由此开始取指阶段:
1,PC中的地址送到地址寄存器AR中
2,PC将地址送到AR后,PC执行加1操作,PC中的地址由0000H变成了0001H。此时程序计数器PC便指向下一个要读取的内存单元,但是,AR中的内容仍然0000H。
3,地址寄存器AR中的地址0000H通过外部地址总线AB被送到存储器的地址译码电路中,地址经过地址译码电路的译码操作后,选中0000H。
4,CPU发出存储器“读”命令。
5,在读命令的操作下,便读出被选中的地址单元0000H中的内容“10110001”也就是“B1H”。并读到外部数据总线DB上。
6,DB上的内容“B1H”被送往数据缓冲寄存器DR中。
7,之后,DR中的内容“B1H”被送到指令寄存器IR中,由于读取的是指令的操作码,因此,IR中的操作码之后会被送到指令译码器ID中进行译码,经过译码,CPU识别出操作码所代表的指令是什么。再由PLA发出执行指令所需要的各种控制命令。
到此,计算机已经完成了取指阶段。经过对操作码“B1H”的译码,CPU知道这是一条内容为“把下一单元中的操作数送到累加器中”的双字节指令。所以,执行该指令的操作就是从下一个存储单元中取出指令第二个字节中的操作数06H,并送入累加器中。该指令的执行过程如图所示:
执行指令过程如下:
1,把PC内容01H送到地址寄存器AR中。
2,PC中内容送到AR后,PC执行加1操作,内容由0001H变为0002H。同样,此时,AR中的内容0001H并没有变化。
3,把地址寄存器中的内容“0001H”送到外部地址总线AB中,之后到达存储器的地址译码电路中,经译码后选中地址单元“0001H”。
4,CPU发出存储器“读”命令。
5,在“读”命令的操作下,读出0001H存储单元中的内容“00000110”,也就是操作码06H。
6,将读出的内容经由外部DB将其放到数据缓冲寄存器DR中。
7,数据缓冲寄存器中的内容”06H“由内部数据总线DB送到累加器中。
至此,第一条指令的执行过程已经完成。
此时,程序计数器PC中的内容为0002H,指向第二条指令所在存储单元的地址。
计算机继续进行取指和执行指令的操作,如此循环下去,直至程序结束!
相关阅读
钻展转化率在哪里看?做了钻展推广后,在后台怎样查看呢?俗话说,干一行就要扎的深,所以专心做钻展,不是单单的将店铺或者单品推出在淘宝
今天,想给大家介绍一下计算机二级考试的相关问题,碍于本人写作水平有限,还望各位大佬指点。 教育招生考试院的官网上在12月10日已经
计算行业有两个基本独立的发展周期:金融和产品周期。金融市场很容易受到关注,波动性大,难以预测。产品周期受到的关注较少,但正是它驱
path@路径class@类classpath@类路径public@公共的,公用的private@私有的,私人的protected@受保护的static@静态void@没有返回值main
京东平台的卖家都知道店铺动态评分对商家的重要性,如果这个评分低的话可能会导致很多官方活动不能报名参与,还会影响店铺的整体权重