精华内容
下载资源
问答
  • 一条指令执行的步骤

    千次阅读 2020-02-23 18:45:57
    “操作码”“地址码”,现在假设你写好一个程序,在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。 总结:先是PC...

    这里是关于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是通用寄存器
    在这里插入图片描述以上,就是我对一条指令执行的步骤总过程实验的书面描写心得。

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

    展开全文
  • 我是一条指令,我现在慌得一批 我是一条指令,在被CPU处理5次后,即将被销毁释放,我现在慌得一批。 毕竟,主存空间是有限,被执行我也失去了存在价值。 我十分羡慕那些能够被持久化到内存中指令,因为...

    我是一条指令,我现在慌得一批

    我是一条指令,在被CPU处理5次后,即将被销毁释放,我现在慌得一批。

    毕竟,主存的空间是有限的,被执行完的我也失去了存在的价值。

    我十分羡慕那些能够被持久化到内存中的指令,因为等待他们的是永生。

    听前辈们说,人类在一生即将结束的时候,脑海中就会跑马灯般浮现自己这一生的场景,从出生的第一刻起,到幼年、青年、壮年、老年,直至此时。

    虽然我不是人类,但是前辈也说了,指令们在即将被释放的时候,也会有记忆的跑马灯出现。

    我想,我的跑马灯也要出现了吧……

    image.png

    当我出生时

    我出生在主存中,听说这个部件是冯·诺依曼体系的核心,我听了十分开心。q

    虽然年幼的我并不知道冯·诺依曼体系代表着什么。但当时的我认为,既然出生在核心,那就意味着重要,没有什么比这更使得指令快乐的了。

    我是一条二地址指令,虽然我也不明白什么是二地址指令,但是大家都这么叫我。

    不过我是一个好学的指令,没过多久,我就明白了为什么大家叫我二地址指令了。

    原来,在冯·诺依曼体系的世界中,组成我们指令的元素是二进制数。而这些二进制数在组成指令的时候,是被划分成两个部分的,即操作码字段地址码字段

    image.png

    每一个指令都有其存在的意义,有的指令存在的意义是加法、有的是乘法、有的是除法,还有一些指令代表着程序返回操作等。这种存在的意义就被称作操作码。而等待被操作的数据或者数据地址则构成了地址码字段。

    我看了看我自己,1100011101010001 01111011 10100001。

    我恍然大悟,原来1100011101010001代表的是操作码,也就是我一生存在的意义;而01111011和****10100001则是我要操作的两个数据。之所以被大家称作二地址指令,是因为我有两个数据地址。

    等待被执行

    在冯·诺依曼体系中,一切事物的表现形式都是二进制数据,所以我看了看前后左右的朋友,他们的模样的确都和我类似。

    正当我思考要不要认识一下大家的时候,我收到了来自控制器老大的命令——请前往指令寄存器。

    当时我十分懵逼,还在思考这到底是怎么一回事,控制器老大见我疑惑,便主动解释起了冯·诺依曼体系世界的基本构成。

    整个冯·诺依曼体系世界,主要由五大部分构成:控制器、运算器、存储器、输入输出设备

    image.png

    控制器老大的主要作用是统一指挥并控制这个世界中的所有部件。

    运算器的主要作用是对数据进行算数运算和逻辑运算。

    存储器是保存待操作的信息和中间结果,就包括我们这些指令和我刚才看到的朋友——其他数据。

    至于输入输出设备,他们其一存在的意义是把人类能识别的信息输入到计算机中,另一个则是把数据输出成人类能够识别的信息。

    这下我想起来了,在我出现在主存之前,我曾见到过我的上一世:

    123+321
    

    开始执行

    我是一条指令,我已进入指令寄存器,感觉良好。

    image.png

    经过控制器老大使用命令解释器解释后,我了解到,我是一个**加法指令,**我存在的意义就是把我操作地址中的两个数据加起来,当然,我自己是无法完成这个操作的,需要依靠其他的冯·诺依曼世界中的部件老哥们。

    image.png

    在控制器老哥大得知我的作用后,将我存储的两个数据地址发送到运算器中的数据暂存器暂存

    紧接着,控制器老大使用控制信号产生器将操作信号发送给运算器中的计算电路

    计算电路将按照严格的逻辑执行加法运算,将两个数据加在一起求和,当然,结果也是二进制的形式。

    最终,这个结果到底是被持久化到存储器中还是到了输出设备中就不得而知了……

    我的一生

    用最简单的图像语言来描述我的一生,那肯定是像下面这个样子。

    image.png

    我的一生,仅仅被处理了五次。

    我依稀记得:

    • 第一次,我在控制器老大的指挥下,进入了指令暂存器
    • 第二次,在命令解释器的作用下,计算命令和待操作的数据被存储到相关的寄存器中。
    • 第三次,根据数据地址,从存储器上取出了我的两个待计算数。
    • 第四次,运算器通过计算得出结果。
    • 第五次,数据被输出。

    虽然是仅仅5次的生命,但我存在的意义,却永不凋零。

    因为我最后明白,要想成就伟大的事业,必须从点滴开始。

    就像《人类群星闪耀时》写的那样:

    一个民族,千百万人里面才出一个天才,人世间数百万个闲暇的小时流逝过去,方始出现一个真正的历史性时刻,人类星光璀璨的时辰。

    写在最后

    希望你能喜欢我的这篇文章。

    更多有趣的文章、JAVA、Python、人工智能相关图书、视频资源、面试资料,尽在公众号最高权限比特流

    欢迎交流!

    公众号-引导关注.png

    展开全文
  • 指令执行的步骤

    2020-04-07 10:08:44
    int a=1; int b=2; int c; ...就最后一条指令而言,它的执行步骤有四个 1.将指令从内存读入编码转化成机器码 2.将值从寄存器中拿出来 3.进行计算 4.write back数据同步 让内存中c值发生改变 ...

    int a=1;
    int b=2;
    int c;
    c=a+b;

    就最后一条指令而言,它的执行步骤有四个
    1.将指令从内存读入编码转化成机器码
    2.将值从寄存器中拿出来
    3.进行计算
    4.write back数据同步 让内存中c的值发生改变

    展开全文
  • 8086的复位与启动 CPU执行指令的步骤

    千次阅读 2020-03-30 21:26:51
    CPU执行指令的步骤 取指 译码 执行 回写 CPU取指令的方法 将CS和IP的内容通过地址加法器得到指令的物理地址,获取下一条执行的指令 RESET信号 当CPU接收到有效的RESET信号且至少维持4个时钟周期,不管之前在执行...

    东北大学-计算机硬件技术基础

    CPU执行指令的步骤

    在这里插入图片描述

    取指令 Fetch
    指令译码 Decode
    执行指令 Execute
    回写 Write-back
    修改指令指针
    1. 取指令
      将CS和IP的内容通过地址加法器得到指令的物理地址,经地址译码器选址后将指定单元中的指令取入CPU的IR当中。

    2. 译码
      ID对IR中的指令进行译码,分析指令的操作码(执行什么操作)和操作数(具体数,存放位置),以及操作结果的存放位置,并由控制器向存储器,运算器等有关部件发出指令所需要的微命令,如:取操作数,运算等。

    3. 执行:

    • 如果操作数在CPU内部的寄存器中,则直接将操作数送往运算器
    • 如果操作数在存储器中,则由控制器根据指令给出的地址,从指定的存储单元取得操作数,经数据暂存器送往运算器。
    • 如果操作结果要写入存储器,由控制器根据写入地址,将数据经由数据暂存器写入指定的存储单元,或者按照指令要求写入CPU内部的寄存器。
    1. 修改指令指针
      IP的内容自动修正(根据DF来决定加还是减)指向要执行的下一条指令。遇到转移指令时,控制器会把转移地址送入IP来更新内容

    RESET信号

    当CPU接收到有效的RESET信号且至少维持4个时钟周期,不管之前在执行什么动作,只要正常供电,8086就结束现行操作,进入复位状态,直到RESET信号失效。在复位状态下,CPU内部的各寄存器被置为缺省值。

    寄存器 复位后默认值
    CS FFFFH
    IP 0000H
    DS,SS,ES 0000H
    FLAGs 0000H
    指令队列 清空
    其他寄存器 0000H

    缺省的CS和IP的内容,通过地址加法器得到FFFF0H,这就是复位后的第一条指令地址。

    FFFF0H处存放了一条无条件转移指令,用来转移到固化在主板BIOS里的一段系统程序的入口。这样,系统一旦被启动仍自动进入程序,开始正常工作。

    复位时,FR被清空,IF = 0, 此时不接受INTR信号

    复位操作时序

    在这里插入图片描述

    展开全文
  • 在电脑中执行一条指令主要又三个步骤: (1)在指定地址上写入一条汇编指令 (2)使cs寄存器与ip寄存器指向指令所在地址 (3)开始执行 (1)在指定地址写入一条汇编指令: 终端上常用命令有: R命令:查看...
  • Coursera:计算机一条指令的执行过程

    千次阅读 2019-04-20 21:27:11
    一条指令执行需经过取指,译码,执行,回写四个步骤。 取指 :PC —》MAR—》地址译码器 同时:CPU控制器通过控制电路控制总线–》控制逻辑read 然后地址译码器读出PC0001对应存储单元,10101010 通过MDR数据...
  • 汇编实验问题实验步骤实验结果 问题 执行下面指令,观察每条指令执行的结果 MOV AX, 2000 ; AL= MOV DS, AX ; DS= NOT AX ; AX= XOR AX, AX ; AX= DEC AX ; AX= INC ...
  • 在linux中当需要频繁执行语句时,可以将待执行命令写成个shell脚本文件,然后执行该脚本文件达到执行命令目的。 具体步骤 vim xxx.sh #gedit xxx.sh #vim xxx.sh #这几种编辑方式都行 #xxx可以替换...
  • 48指令的执行方案

    2021-01-24 09:57:29
    指令执行方案:个指令周期通常包括几个时间段,每个步骤完成指令额部分功能,几个依次执行的步骤完成这条指令的全部功能。出于性能和硬件成本等考虑,可以选用3种不同的方案来安排指令的执行步骤。 1、 单指令...
  • 计算机组成 2 计算机基本结构 ...而且我们也知道了计算机执行一条指令的主要步骤,包括取指、译码、执行、回写。 那我们就想在这个模型机上尝试执行一条计算机的指令。这里给出了一个例子,我们想...
  • 指令执行时间

    千次阅读 2014-04-14 14:18:21
    想了半天也迷糊,今天一早醒来,突然想起来,其实CPU执行一条指令包含了取指令和执行指令2个步骤,执行指令的时间是固定的,而取指令不同,其实所谓的指令预取和流水线结构,是为了减少取值时间的,尤其在高速的CPU...
  • 祈祷软院赶快更新课程让下一代逃脱TEC-2魔爪,monitor里那1994年份真是看得人口老血…… 微码说明 PC→AR,PC+1→PC: 0000 0E00 A0B5 5402 0E00:顺序执行 A0B5: 读写那里设置不操作,101,WE=1是为...
  • CPU乱序执行指令重排序)

    千次阅读 2020-01-18 14:35:56
    CPU速度至少比内存快100倍,为了提升效率,会打乱原来的执行效率,会在一条指令执行过程中(比如去内存读数据,大概慢100多倍),去同时执行一条指令,前提是两条指令没有依赖关系(洗茶壶/烧水-茶叶入壶-煮茶-...
  • 指令与程序在主机上执行过程主机完成一条指令过程计算机基本组成图片取数指令步骤存数指令操作程序运行过程 主机完成一条指令过程 计算机基本组成图片 取指令(PC:存放当前预执行指令的地址,具有计数功能(PC)+1...
  • 指令执行的流程 ...每次执行一条指令后,PC寄存器里数值加上一个指令地址长度,执行一条指令。当程序中出现跳转指令时,PC寄存器值会被修改为特定值,以实现跳转(也就是我们在程序里写i
  • 指令周期:CPU从主存中每取出并执行一条指令所需全部时间。 三大周期 指令周期 机器周期 时钟周期 每个指令周期内机器周期数可以不等,每个机器周期内节拍数也可以不等。(原理如下截图) 指令周期流程 ...
  • EXE执行步骤

    千次阅读 2008-06-16 09:29:00
    系统把.EXE程序从磁盘装入存储器时,装入程序是按以下步骤执行的:1. 从磁盘取.EXE文件2. 在可用内存储器的一个小... 把代码段地址装入CS寄存器并把IP寄存器设置成代码段中第一条指令的偏移值(通常是0)6. 把堆栈段地
  • 1.当虚拟机遇到一条new指令时候,首先去检查这个指令的参数是否能在常量池中能否定位到一个类的符号引用(即类的带路径全名),并且检查这个符号引用代表的类是否已被加载、解析和初始化过,即验证是否是第一次使用...
  • pun.c程序生成后,要通过以下3个步骤将其转化为机器可执行的形式:1、预处理。预处理器首先执行#开头命令(指令directive),给程序添加内容或进行修改。2、编译。修改后程序进入编译器翻译成机器指令(目标代码...
  • 维特根编程语言仅由两条指令个特殊变量名组成。 Wittgen允许您将任何文本字符串分配给任何名称变量。 它还允许您检索分配给该变量文本。 最后,它有个名为“ Doing Now”特殊变量。 每个执行步骤都...
  • 1. Dockerfile是什么? Dockerfile是Docker用来构建镜像文本文件,包含自定义指令和格式。...除了FROM指令,其他每一条指令都会在上一条指令所生成镜像基础上执行执行完后会生成一个新镜像层,.
  • 本篇博文主要是讲述一下计算机组成原理实验中CPU组成与机器指令执行实验,因为很多同学在刚学习计算机组成原理实验的时候...(3)通过CPU运行九机器指令(排除中断指令)组成的简单程序,掌握机器指令与微指令的
  • 指令

    2008-04-03 19:36:00
    先从存储器中每次读取一条指令 2.然后执行这条指令 四步: 1.每个指令周期开始时,依据在程序计数器中的指令地址从存储器中取一条指令 2.在取指完成后根据指令类别自动将程序计数器的值变成下条指令的地址,自增...
  • 按最简单的形式,指令处理包括两步:处理器从存储器中一次读(取)一条指令,然后执行每条指令。程序执行是由不断重复的取指令和执行指令的过程组成的。指令执行可能涉及很多操作,具体取决于各条指令本身。 一条...
  • 文章目录前言、使用步骤1.按钮事件编写2.NewThread方法3...最后再把执行的结果行行地读取出来,展示到输出里。 、使用步骤 1.按钮事件编写 private void StartAudit_Click(object sender, EventArgs e) {
  • response.redirect 其实是当服务器碰到这条语句时发送一条指令(包含新地址)给浏览器,然后让浏览器去发送http请求,请求那个新地址,流程如下: <br /> 浏览器ASP文件请求->服务器执行->遇到...
  • 查看上一条指令是否执行成功 返回0意味着成功,返回1意味着失败 echo 是个 env 设置变量 解释一下上面几个步骤: 设置变量name赋值为1, 注意啊,两边不能有空格 用 echo $name 查看 用unset取消变量...
  • 指令流水线

    千次阅读 热门讨论 2017-09-28 16:00:20
    指令流水线:指令流水线是为了提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成的方式。比如:一条指令执行要经过三个阶段:取指令、译码、执行,每一个阶段都要花费一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,039
精华内容 415
关键字:

执行一条指令的步骤