文档详情

指令流程.doc

发布:2018-01-19约4.45千字共5页下载文档
文本预览下载声明
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
显示全部
相似文档