0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

cpu执行指令的过程详解

h1654155282.3538 来源:网络整理 2018-03-09 16:30 次阅读

cpu执行指令的过程详解

计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。

取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器

分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。

计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。

cpu执行指令的过程详解

CPU指令执行流程图

下面我们将举个实例来说明指令的执行过程:

开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。

例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器,

0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是:

1、程序计数器的内容(这时是0000H)送到地址寄存器;

2、程序计数器的内容自动加1(变为0001H);

3、地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中;

4、CPU使读控制线有效;

5、在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。

由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC=“0002H”,PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定。

cpu执行指令步骤详解

1、第一步我们首先看一下cpu的内部结构,主要包括寄存器,控制器,ALU算数逻辑运算单元,控制器里面又含有操作控制器,计数器,寄存器等,如下图所示:

cpu执行指令的过程详解

2、第二步我们了解了cpu的内部结构之后,就比较容易理解cpu是如何执行指令的,cpu执行指令主要分为5个阶段,从取指令,导进行指令译码,执行指令,访问主存,最后回写结果,具体cpu执行过程如下图所示:

cpu执行指令的过程详解

3、第三步我们首先来看cpu执行指令的一、二阶段,cpu是怎么取指令和进行指令译码,将指令先从主存里面取出,然后放到寄存器,最后进行指令译码,这样就完成cpu执行指令的一、二阶段,具体如下图所示:

cpu执行指令的过程详解

4、第四步cpu执行指令的三、四阶段,首先根据指令规定的操作,完成具体功能,最后访问主存,操作数,得到物理地址,就完成了执行指令和访问主存的三、四阶段,如下图所示:

cpu执行指令的过程详解

5、第五步在cpu第四阶段访问主存的时候,需要得到物理地址,具体读写过程如下图所示:

cpu执行指令的过程详解

6、第六步我们也可以看一下cpu是怎么读指令的,下面是cpu的工作原理,如下图所示:

cpu执行指令的过程详解

7、第七步cpu执行指令进去到了第五个阶段,也是最后一个阶段回写结果,把第三阶段执行指令的运行结果数据回写到一种存储形式,cpu这样就成功执行完了一条指令,如下图所示

cpu执行指令的过程详解

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211119
收藏 人收藏

    评论

    相关推荐

    单片机执行指令过程详解

    ,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行
    的头像 发表于 02-15 09:53 1.9w次阅读

    单片机执行指令过程

    单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其
    发表于 06-07 14:05

    单片机执行指令过程是怎样的

    单片机执行指令过程详解单片机执行程序的过程,实际上就是执行
    发表于 11-25 08:02

    计算机执行指令过程分析

    计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令执行程序的过程就是计算机的工作过程。控制器靠
    发表于 11-17 10:37 1.3w次阅读
    计算机<b class='flag-5'>执行</b><b class='flag-5'>指令</b>的<b class='flag-5'>过程</b>分析

    51单片机执行指令过程的分析解释

    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每
    的头像 发表于 03-16 16:41 7362次阅读

    浅谈51单片机指令执行过程

    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每
    发表于 04-16 11:20 6266次阅读
    浅谈51单片机<b class='flag-5'>指令</b><b class='flag-5'>执行</b>的<b class='flag-5'>过程</b>

    ARM程序的执行过程详解

    本文主要详解ARM程序的执行过程,首先介绍了ARM程序的组成及ARM映像文件的组成,其次阐述了ARM程序的执行过程,最后介绍了RO、RW、Z
    发表于 04-26 11:34 7181次阅读

    单片机是如何执行指令过程?MCU内存又是如何分配的?

    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每
    发表于 08-25 09:10 5184次阅读

    CPU操作指令详解

    CPU将CS:IP指向的内存单元中的内容看作指令,因为,在任何时候,CPU将CS,IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物
    的头像 发表于 09-24 17:52 9814次阅读

    80C51单片机指令的取指和执行时序详细说明

    现按4类指令介绍CPU时序。因为CPU工作的过程就是取指令执行
    发表于 09-27 17:16 1次下载
    80C51单片机<b class='flag-5'>指令</b>的取指和<b class='flag-5'>执行</b>时序详细说明

    浅析单片机指令执行过程

    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程
    的头像 发表于 08-07 14:47 5508次阅读

    单片机执行指令过程详解

    单片机执行指令过程详解单片机执行程序的过程,实际上就是执行
    发表于 11-17 09:36 19次下载
    单片机<b class='flag-5'>执行</b><b class='flag-5'>指令</b><b class='flag-5'>过程</b><b class='flag-5'>详解</b>

    单片机执行指令过程

    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令过程。计算机每
    发表于 02-11 15:26 4次下载
    单片机<b class='flag-5'>执行</b><b class='flag-5'>指令</b>的<b class='flag-5'>过程</b>

    CPU指令执行过程 CPU指令流水线

    几乎所有的冯·诺伊曼型计算机的 CPU,其工作都可以分为 5 个阶段:取指令指令译码、执行指令、访存取数、结果写回。
    发表于 05-09 17:29 1.9w次阅读
    <b class='flag-5'>CPU</b><b class='flag-5'>指令</b>的<b class='flag-5'>执行</b><b class='flag-5'>过程</b> <b class='flag-5'>CPU</b><b class='flag-5'>指令</b>流水线

    证明CPU指令是乱序执行

    双击QQ.exe从磁盘加载到内存里面,内存里面就会有了一个进程,进程产生的时候会产生一个主线程,就是main方法所在的线程,cpu会找到main开始的地方,把它的指令读取过来放到程序计数器,把数据放到寄存器,然后ALU开始做计算,一步一步来
    的头像 发表于 03-15 09:13 928次阅读