指令流程.doc
文本预览下载声明
CPU指令流程
能被CPU直接使用的操作数存放位置:
CPU内的寄存器中,如R0,R1,R2,R3等;
主存储器的存储单元中,包括cache的存储单元中,以及外设接口的寄存器中,但外存如硬盘、光盘、U盘等中的操作数不能被CPU直接使用,必须调入主存单元中;
由于主存的容量比CPU内的寄存器的容量大成百上千倍,因此,99%以上的操作数存放在主存储器中,即CPU使用的操作数主要从主存储器的存储单元中存取。
二、必须掌握的寻址方式:
由上可知,能被CPU直接使用的操作数要么存放在CPU内的寄存器中、要么存放在主存储器的存储单元中,而最主要的是存放在主存储器的存储单元中,因此,如何从主存储器的存储单元中获取所需的操作数就是问题的关键。
1.立即寻址方式:由指令直接给出操作数。无需从CPU内的寄存器中、主存储器的存储单元中获取操作数,因而该种寻址方式速度最快。
助记符表示:无
寻址过程:无
2.寄存器(直接)寻址方式:在指令中给出寄存器号,在指定的寄存器中存放着操作数。操作数存放在CPU内的寄存器中,无需访问主存,因而该种寻址方式速度很快。
助记符表示:R
R的种类及编号: R0(000) , R1(001) , R2(010) , R3(011) , SP(100) , PC(111),PSW(101)
寻址过程:无
指令中给出的寄存器号是Ri(按上述编码则代码为×××),从寄存器Ri中可直接读取操作数S,寻址方式如下:
OP 地址1 地址2=×××(寄存器Ri 的编号)
寄存器寻址方式示意图
例:若CPU中寄存器内容如下,现指令中给出寄存器号为011,按寄存器寻址方式读取操作数。
R0 1000H
R1 2000H
R2 3A00H
R3 3C00H
按寄存器寻址方式定义,读得的操作数S=3C00H。
寻址过程:寄存器号 操作数
操作数S与寄存器Ri 的关系为:
S=(Ri )
3.寄存器间接寻址方式:若指令中给出的地址码是寄存器编码,被指定的该寄存器中存放的是操作数地址,按照该地址访问某主存单元,该单元的内容为操作数,这种寻址方式称为寄存器间接寻址。
助记符表示:(R)
R的种类及编号: R0(000) , R1(001) , R2(010) , R3(011) , SP(100) , PC(111),PSW(101)
寻址过程:寄存器号 操作数地址 操作数
简化为:
Ri MAR 将Ri 操作数地址送MAR
M MDR C/D 将操作数从主存单元取回送CPU
指令在地址段给出的是寄存器号Ri,从Ri中读出的是操作数地址A,按地址码A访问主存,从相应单元中读取操作数S,寻址方式如下:
操作数S与寄存器Ri 的关系为:
S=((Ri ))
例 下面分别列出寄存器中存放内容,以及主存储器数据区的地址与单元内容之间的对应关系。若指令中给出寄存器号为001,按寄存器间址方式读取操作数。
寄存器: R0 1000H
R1 2000H
R2 3000H
主存单元:1000H 3A00H
2000H 2C00H
3000H 3B00H
按寄存器间址方式定义,指令指定的寄存器为R1,从中读得操作数有效地址(R1)=2000H,据此访问主存储器。读得操作数为S= ((R1))= 2C00H。
4.自增型寄存器间址方式:这是寄存器间址的一种变型,若指令中给出存放操作数地址的寄存器号,从寄存器中读出操作数地址后,寄存器内容加1,这种寻址方式称为自增型寄存器间接寻址。
助记符:(R)+ 加号在括号之后,形象地表示先操作(从寄存器中读取地址,按修改前的地址访问主存,读取或写入操作数),后修改(指针内容加1)
R的种类及编号: R0(000) , R1(001) , R2(010) , R3(011) , SP(100) , PC(111),PSW(101)
指令中在地址段给出的是寄存器号Ri,从Ri中读出的是操作数地址A,按地址码A访问主存,从相应单元中读取操作数S,同时,对寄存器Ri 中的内容加1,寻址方式如下:
寻址过程:
寄存器号 操作数地址 操作数
Ri 内容加1
简化为:
Ri
显示全部