计算机是怎样运行的?

一,概述

微机的工作过程就是不断地从内存中取出指令并执行指令的过程!

当开始运行程序时,首先应把第一条指令所在存储单元的地址赋予程序计数器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,指向第二条指令所在存储单元的地址。

计算机继续进行取指和执行指令的操作,如此循环下去,直至程序结束!

发布了99 篇原创文章 · 获赞 83 · 访问量 11万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览