一条指令执行的步骤

这里是关于C++程序设计的实验课程第三个实验:一条指令执行的步骤分析图解

为了强化大家的理论知识巩固,在讲解词语时候也会有问题提出来巩固。

在这里插入图片描述

指令分为两个部分:“操作码”“地址码”,现在假设你写好一个程序,在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。
程序计数器(PC):为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。
在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。在这里插入图片描述

总结:先是PC存储第一条指令,即从内存提取的第一条指令。

  • 在程序中存放指令地址的寄存器叫( )

A通用寄存器
B 程序计数器
C变址寄存器
D指令寄存器
答案为:D
解析:程序计数器存放的是下一条指令所在单元的地址,指令寄存器存放正在执行的指令。(除了执行第一次指令以外,都是存放下一条指令所在单元的地址)

程序一开始会根据PC存储的指令的内存地址(简称:指令地址),根据地址取出后放在指令寄存器中,图中指令寄存器是0001 110100 110110=加法指令的代码,因为实验在浏览器表现不太好,把两部分数字倒过来了,实际上应该是在这里插入图片描述在这里插入图片描述这样子的
然后上下图比较后我们可以看到PC多加了一个1,这是为什么?
答案是因为当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。 当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。有些机器中也称PC为指令指针IP(Instruction Pointer)
但在这里我要强调一句,这里PC加1不是单纯加1,它是根据先前的指针地址继续加上指令的字节数,因为这里的地址是按字节排序,即0x000A+1=0x000B…从而继续执行下一条指令。如果说一个指令占据两个字节,你可以这样想:执行完一条指令后,下一条指令的地址是多少???是刚刚被执行完的指令地址加上2,也正是因为这个可以继续执行指令。

AR=0X000A=10=1010 因为0X是十六进制的标记,后面数字全当做十六进制处理,然后转化成二进制

在这里插入图片描述这里是要把操作码放在CU以此来判断要干啥?(加减乘除之类的)判断后它就能知道后面的执行操作决定用什么工具。

  • 控制器(CU)的功能是______。

A) 指挥计算机各部件自动、协调一致地工作
B) 对数据进行算术运算或逻辑运算
C) 控制对指令的读取和译码
D) 控制数据的输入和输出
答案:A
解析:控制器的主要功能是指挥全机各个部件自动、协调的工作。
在这里插入图片描述这一段是因为IR里面的值0001 110100 110110的其中110100是0X0034的值,也是我们输入的值的地址(这里我要说的是0X0034这个地址对应的是我输入的值的内存单元),同理,110110也是0X0036的值,对应着我输入的第二个值,然后存在数据缓冲寄存器(DR)中
在这里插入图片描述
在这里插入图片描述
经过累加器ALU的加法计算,得出结果并存储在第一个值存储的位置——数据缓冲寄存器(DR)

  • 在CPU中 数据寄存器DR是指?

A.可存放指令的寄存器
B.可存放程序状态字的寄存器
C.本身具有技术逻辑于移位逻辑的寄存器
D.可编程指定多种功能的寄存器
答案:C
解析:A是指令寄存器IR B是程序状态寄存器PSW D是通用寄存器
在这里插入图片描述以上,就是我对一条指令执行的步骤总过程实验的书面描写心得。

如果这段描述有帮到你,请记得点赞并关注哟!
在这里插入图片描述

发布了9 篇原创文章 · 获赞 18 · 访问量 1563

猜你喜欢

转载自blog.csdn.net/weixin_45677047/article/details/104463669