程序的执行过程如下:
①控制器将指令计数器PC置0。
②取第一条指令:PC中的指令地址0被送往地址寄存器,经译码,选中0号存储单元;控制器发读命令。第一条指令被读出,经数据缓冲器、数据总线,进入指令寄存器IR。
③执行第一条指令:这是一条取数核裂指令:将8号存储单元的内容读出,送寄存器A。IR中地址码8被送往地址寄存器,经译码,选中8号存储单元;IR中 *** 作码为取数,微 *** 作命令产生电路根据 *** 作码译码结果和时序标志发出读命令,8号存储单元的内容(0000l011)被读出,经数据缓冲器进入数据总线;待稳定后,微 *** 作命令产生电路发命令BIS→A,于是读出的数据进入寄存器A。此期间PC在微 *** 作命令‘+l’的作用下加l,形成了下一条要执行的指令的地址。
④取第二条指令:过程同取第一条指令,只是现在Pc的内容为1,故将1号存储单元中的指令取出,送IR。
⑤执行第二条指令:过程同执行第一条指令,将9号存储单元的内容(00000101)读出,送寄存器改和闭B。此期间Pc在命令‘+1’的作用下再加l,变成2。
⑥取第三条指令:过程同前。
⑦执行第三条指令:这是一条加法指令:(A)+(B)→A。微 *** 作命令产生电路发A→L、B→R和ADD,相加的结果(00010000)被送上数据总线,待稳定棚巧后,微 *** 作命令产生电路发Bus—A,于是该结果被送人寄存器A。此期间PC同样被加1,变成3。
⑧取第四条指令:过程同前。
⑨执行第四条指令:这是一条存数指令:(A)一10号存储单元。IR中的地址码10,经译码选中10号存储单元;微 *** 作命令产生电路根据 *** 作码发出A→L和MOV(MOV为传送微 *** 作命令,此时右路选择控制信号全为0,即关闭右路选择器),这时ALU仅起数据通路的作用,于是A的内容通过左路选择器和ALU,进入数据总线;待稳定后,微 *** 作命令产生电路发出写命令,数据总线中的数据(00010000)经数据缓冲器被写入到10号存储单元。此期间PC同样被加1,变成4。
⑩继续执行下面的程序。
从上面的程序执行过程可以看出,计算机的工作过程是将内存中的指令逐条取出并执行的过程,这个过程是自动的、连续的,不需要人的干预。需要指出,指令的执行过程包括对指令的译码。控制器通过指令译码才知道这条指令是什么指令,才能发出相应的微 *** 作命令。
执行程序的过程:开始执行程序时,必须先给迟塌程序计数器PC赋以第一条指令的首地址00H,然后就进入第一条指令的取令的取指令阶段。
第一条指令的执行过蚂埋程:
取指令阶段:
①将程序计数器PC的内容(00H)送至地址寄存器AR,记为PCAR。
②程序计数器PC的内容自动加1变为01H,为取下一个指令字节作准备,记码物圆为PC+1PC。
③地址寄存器AR将00H通过地址总线送至存储器,经地址译码器译码,选中00号单元,记为ARM。
④CPU发出"读"命令。
⑤所选中的00号单元的内容B0H读至数据总线DB,记为(00H)DB。
⑥经数据总线DB,将读出的B0H送至数据寄存器,记为DBDR。
⑦数据寄存器DR将其内容送至指令寄存器IR,经过译码,控制逻辑发出招待该条指令的一系列控制信号,记为DRIR,IRID、PLA。经过译码,CPU"识别"出这个 *** 作码就是MOVA,03指令,于是,它"通知"控制器发出执行这条指令的各种控制命令。
C源程序到运行程序步骤:1.编辑:输入源程序并存盘(.C)
2.编译:将源程序翻译为目标文件(.OBJ)
3.链接:将目标文件生成可执行文件( .EXE)
4.运行:执伏滑枯行让郑.EXE文件,得到运缺洞行结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)