组原:
指令的执行过程分为以下4个步骤:
取指令:按照程序计数器中的地址(如0100H),从内存器中取出指(如070270H),并送往指令寄存器;
分析指令:对指令寄存器中存放的指令(070270H)进行分析,由译码器对操作码(07H)进行译码,将指令的操作码转换成相应的控制电位信号;由地址码(0270H)确定操作数地址;
执行指令:由操作控制线路发出完成该操作所需要的一系列控制信息,去完成该指令所要求的的操作。例如做加法指令,取内存单元(0270H)的值和累加器的值相加,结果还是放在累加器;
一条指令执行完成,程序计数器加1或将转移地址码送入程序计数器,然后回到第(1)步继续执行。
一般把计算机完成一条指令所花费的时间成为1个指令周期,指令周期越短,指令执行越快。
通常所说的CPU主频或称为工作频率,就反映了指令执行周期的长短。
计算机在运行时,CPU从内存读出一条指令送到CPU内执行,指令执行完,再从内存读出下一条指令送到CPU内执行。CPU不断的取指令、分析指令、执行指令,这就是程序的执行过程。
计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下来,再取出第二条指令,在控制器的指挥下完成规定操作。依此进行下去。直至遇到停止指令。
1
文章最后发布于: 2017-08-16
因为要执行的指令的地址是保存在pc(保存下一条指令的地址)中,指令保存在存储体中,所以第一步就是
pc把指令的地址给MAR(memory data register主存数据寄存器。保存数据的源地址或目的地址),再由MAR给存储体,在控制器cu的控制下,存储体把指定单元中保存的那条取数指令取出送入MDR(保存将被读或写的数据),然后再送至IR(Instructinon register指令寄存器),这就是取指令的过程。
其次把指令的操作码部分给CU(~~~控制单元~~(对操作码)进行译码~~目的是经译码后,由cu上面的控制信号控制相应部件去执行指令要求的各种操作),~~~地址码部分送至MAR,再由MAR->存储体,在控制器的控制下,把要取的数取出存入MDR,再送至ACC,即完成取数操作。
程序计数器pc把指令给MAR,MAR再给MDR,然后MDR取出指令给IR(指令寄存器),IR先将OP(操作码)给CU(控制单元),再将地址码给MAR,MAR再给MDR,MDR取出数据给ACC(运算器)。至此完成一个指令周期
输入设备:键盘…
输出设备:显示器…
cpu[
控制器:IR(指令寄存器)…PC(程序计数器~~也是一个寄存器)…CU(控制单元)
运算器:ACC…ALU…MQ…X(这几个都是寄存器)
]
存储器:{
主存:SRAM…DRAM…ROM(bios)
辅存:光盘,磁盘,u盘
缓存:使用的是SRAM…被集成到了cpu内
闪存:固态硬盘用的就是闪存
}
MAR和MDR是用来帮助完成CPU和主存储器之间的通信的寄存器
op(IR)取操作码
ad(IR)取地址码
cpu是按照指令周期的不同来区分指令和数据的
~~~~~~~~~~~~
(pc)~~~>MAR
M(MAR)~~~>MDR
(MDR)~~~>IR
取指令结束
op(IR)~~~>cu
分析指令结束
AD(IR)~~>MAR
M(MAR)~~>MDR
(MDR)~~~>ACC
执行指令结束