精华内容
下载资源
问答
  • cpu执行指令的过程详解计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。取指令的任务是:根据程序计数器PC的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是...

    cpu执行指令的过程详解

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

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

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

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

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

    7944282fabed7abe2a9d9104287c14c9.png

    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算数逻辑运算单元,控制器里面又含有操作控制器,计数器,寄存器等,如下图所示:

    c94a7427a262a1e1dc53c9d278213719.png

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

    986ff19d60c6b51ea4a2e0b0848a6799.png

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

    0a42f28172dda1b864d7fffa7e0826fc.png

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

    52ed7878521cc912097a2442896643f0.png

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

    7e099e9820badbcb1f7f182ac9f4c53e.png

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

    5d1cfdfd0c3239930af4ac0f6b4730da.png

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

    c1f2567988f5bacb420ef68199da84df.png

    展开全文
  • CPU内部组成结构及指令执行过程

    万次阅读 多人点赞 2015-05-15 09:53:16
    计算机的基本硬件系统由运算器、控制器、存储器和输入、... CPU通过执行指令来控制程序的执行顺序,这是CPU的重要职能。  (2)操作控制  一条指令功能的实现需要若干个操作信号来完成,CPU产生每条指令的操作信号并

      计算机的基本硬件系统由运算器、控制器、存储器和输入、输出设备五大部件组成。运算器和控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU)。

      CPU的功能

      (1)程序控制

      CPU通过执行指令来控制程序的执行顺序,这是CPU的重要职能。

      (2)操作控制

      一条指令功能的实现需要若干个操作信号来完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作。

      (3)时间控制

      CPU对各种操作进行时间上的控制,这就是时间控制。CPU对每条指令的整个执行过程要进行严格控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。

      (4)数据处理

      CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。

      CPU的组成

      CPU主要有运算器、控制器、寄存器组合内部总线等部件组成。

      运算器

      运算器由算术逻辑单元(Arithmetic and Logic Unit,ALU),累加寄存器(AC),数据缓冲寄存器(DR),和状态条件寄存器组成,它是数据加工处理部件,完成计算机的各种算术和逻辑运算。相对于控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。

      算术逻辑单元(ALU)

      ALU是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。

      累计寄存器(AC)

      AC通常简称为累计器,它是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。最后的运算结果放到AC中,因此运算器中至少有一个累加寄存器。

      数据缓冲寄存器(DR)

      在对内部存储器进行读写操作时,用DR暂时存放由内存储器读写的一条指令或一个数据字,将不同时间段内读写的数据隔离开来。DR作为CPU和内存、外部设备之间的数据传送中转站;作为CPU和内存、外围设备之间在操作速度上的缓冲;在单累加器结构的运算器中,DR还可以件作为操作数寄存器。

      状态条件寄存器(PSW)

      PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志。这些标志通常由一位触发器保存,保存了当前指令执行完成之后的状态。通常一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。

      控制器

      运算器只能完成运算,而控制器用于控制整个CPU的工作,他决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。

      时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路控制电路。中断控制逻辑用于控制各种中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。

      指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令等步骤。

      指令寄存器(IR)

      当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,在送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。

      程序计数器(PC)

      PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分为两种情况,一是顺序执行,而是转移执行。当程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内容是确定,因此PC的内容即是程序第一条指令的地址。执行指令时CPU自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。

      地址寄存器(AR)

      AR保存当前CPU所访问的内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用AR保持地址信息,知道内存的读写操作完成为止。

      指令译码器(ID)

      指令分为操作码和地址码两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。ID就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。

      寄存器组

      寄存器组可分为专用寄存器和通用寄存器。运算器和控制器中的寄存器是专用寄存器,起作用是固定的。通用寄存器用途广泛并可由程序员规定其用途,其数目因处理器不同有所差异。

      指令执行过程

      

      MOV指令

      取指阶段:

      程序计数器PC装入第一条指令的地址101,PC的内容被放到指令地址总线上,对指令进行译码并启动读命令。从101号地址读出MOV指令,通过指令总线IBus装入指令寄存器IR,程序计数器PC内容加1,变成102,为下一条指令做好准备。指令寄存器IR中的操作码被译码,CPU识别出是MOV指令,至此取指阶段完成。

      执行阶段:

      操作控制器OC送出控制信号到通用寄存器,选择R1(10)为源寄存器,RO(00)为目标寄存器。OC送出控制信号到ALU,指定ALU做传送操作,打开ALU输出三态门,将ALU输出(10)送的数据总线DBus上,任何时刻DBus上只能有一个数据。将DBus上的数据打入数据缓冲寄存器DR,将DR中的数据打入目标寄存器RO,RO的内容由00变为10至此MOV指令执行完毕。

      LAD指令

      取指阶段:

      LAD指令的取指阶段和MOV指令完全相同。

      执行阶段:

      OC发出控制命令,打开IR输出三态门,将指令中的直接地址码6放到数据总线DBus上,装入地址寄存器AR,将数存6号单元中的数100读出到DBus上,装入缓冲寄存器DR。将DR中的数100装入通用寄存器R1,原来R1中的值10被覆盖,至此LAD指令执行完毕。

      ADD指令

      取指阶段:

      ADD指令的取指阶段和其他指令相同。

      执行阶段:

      操作控制器OC送出控制信号到通用寄存器,选择R1(100)为源寄存器,R2(20)为目标寄存器。ALU做R1和R2的加法运算,打开ALU输出三态门,将运算结果120放到数据总线DBus上,然后打入缓冲寄存器DR。ALU产生的进位信号保存在状态字寄存器PSW中,将DR中数值120装入R2中,R2原来的数20被覆盖。到此ADD指令执行结束。

      STO指令

      取指阶段:

      STO指令的取指阶段和其他指令相同。

      执行阶段:

      操作控制器OC送出控制信号到通用寄存器,选择R3(30)作为数据存储器的地址。打开通用寄存器输出三态门,将地址30放到DBus上并装入地址寄存器AR,并进行地址译码。操作控制器OC送出控制信号到通用寄存器,选择R2(120)作为数存的写入数据放到DBus上。将数值120写入数存30单元,原先的数据40被冲掉。至此STO指令执行结束。

      JMP指令

      取指阶段:

      JMP指令的取指周期和其他指令相同。

      执行阶段:

      OC发出控制命令,打开IR输出三态门,将IR中的地址码101发送到DBus上,将DBus上的地址码101打入到程序计数器PC中,PC中原先的地址106被更换。于是下一条指令不是从106单元取出,而是转移到101单元取出。至此JMP指令执行周期结束。

      以上内容是对于CPU功能、组成以及执行指令的一些总结和整理,有不足之处,希望大家批评指正。

    展开全文
  • 一条cpu指令执行过程

    千次阅读 2017-09-12 23:07:58
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器的...
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
    
    取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。
    
    分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。
    计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。
    
    一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。
    
    下面我们将举个实例来说明指令的执行过程:
    
    开机时,程序计算器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的最大寻址能力(1MB)并不能得到充分的发挥。 为了解决这个问题,8086CPU采用段地址 * 16 + 偏移地址的方式,将两个16位地址传入地址加法器,确定最终的物理地址。 我们将段地址和偏移地址...

    一.两个基础

    (1)CPU是怎样获得内存地址的

    8086CPU的地址总线宽度是20,但数据总线宽度是16(即意味着算术逻辑运算单元的大小是16位)。在这里就出现了问题,CPU的最大寻址能力(1MB)并不能得到充分的发挥。

    为了解决这个问题,8086CPU采用段地址 * 16 + 偏移地址的方式,将两个16位地址传入地址加法器,确定最终的物理地址。

    我们将段地址和偏移地址都用十六进制表示,段地址乘以16即相当于16进制数向左移动一位,末尾补0。然后再加上偏移地址,得出十六进制表示的20位数据。

    (2)CPU是怎样区分指令和数据的

    指令和数据在内存当中是没有任何区别的,它们都是二进制信息。

    8086CPU中有这样两个寄存器(内存是连续的,这些寄存器分段只是在逻辑上的概念):CS(代码段寄存器)和IP(指令指针寄存器)。二者存放的也都是16位信息,如下图所示:
    在这里插入图片描述
    0AE3就是CS里面存放的十六进制信息,0100、0110等就是IP中存放的偏移地址。
    在任何时候,CPU都会把CS:IP指向的地址看成是指令信息的起始位置来进行读取。

    二.指令的执行过程

    概括地分为三步执行:

    1.从CS:IP指向的内存地址读取指令信息,将指令加入指令缓冲器
    2.IP = IP + 所读取指令的长度(字节),从而指向下一条指令地址
    3.执行指令,跳转到步骤一

    例题:
    在这里插入图片描述
    (jmp是转移指令,可修改IP寄存器的值)
    整个过程中,IP寄存器改变了4次,最后IP中的值为0

    展开全文
  • 通常我们将RISC CPU指令执行过程分为5个步骤,分别是取指令(IF)、解码(ID)、执行(EX)、内存读写(MEM)、寄存器写(WB)。我们要实现CPU,可以将5个步骤做成5个子模块分别设计,这样可以大大降低我们的开发复杂度。 ...
  • 8086的复位与启动 CPU执行指令的步骤

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

    千次阅读 2015-04-22 20:33:10
    计算机加载的第一条肯定是指令,然后根据这条指令去取二进制数,如果这条指令要取操作数,那么取出来的就是操作数;如果这条指令要取下一条指令,那么...然后解释并执行指令在执行指令时期,cpu通过数据流取数据, 
  • CPU执行的第一条指令地址

    千次阅读 2019-07-24 13:35:20
    先说结论:X86 CPU启动后,将从地址0xFFFFFFF0处开始执行(此地址并非内存地址。此时,内存还远远没有初始化。)。这一章来看X86系统是如何实现这一点的。 加电或者RESET针脚被激发(Assert)后[ref intel] CPU会...
  • Z80 CPU中的主要指令

    千次阅读 2016-12-09 00:00:14
    1.Z80 CPU中的主要指令2.Z80 CPU的寄存器
  • 计算机可以从时间和空间两方面来区分指令和数据,时间上,取指周期从内存取出的是指令,而执行周期从内存取出或往内存写入的是数据,空间上,从内存取出指令送控制器,而执行周期从内存从取的数据送运算器...
  • CPU执行第一条指令时情形

    千次阅读 2013-10-14 14:58:12
    cpu执行的第一条指令内存,众所周知,内存是由ram组成的 ,而ram不断电,可以保存信息,一旦断电,ram的信息将会丢失,所以cpu执行的第一条指令被固化rom。 以前8086年代,...
  • 机器指令CPU能直接识别并执行指令,通常由操作码和操作数两部分组成,操作码指出该指令所要完成的操作,即指令的功能,操作数指出参与运算的对象,以及运算结果存放的位置等。本教程操作环境:windows7系统、...
  • CPU指令集存储位置哪里?

    千次阅读 2019-10-11 17:00:25
    首先,CPU指令集是在CPU设计时固化里面的“硬程序”,整合在CPU内部的逻辑电路,不是什么代码,也谈不上“存储”。所以我们在CPU里是不可能找到“指令集”的实体的,如果非要具象化,那它就是“汇编语言”转换到...
  • cpu指令集究竟存放在哪里?

    千次阅读 热门讨论 2019-05-02 13:42:54
    cpu指令集究竟存放在哪里? 看了网上的一些解释,多数是... cpu指令集也类似, cpu指令集就是cpu各个指令的集合, 存放在cpu的说明书。 而不是存放在cpu中,也不是存放在寄存器,更不是存放在内存。 ...
  • 程序(进程)在cpu中执行过程

    万次阅读 多人点赞 2018-09-30 10:59:10
    1.把可执行程序相关数据代码等加载到内存的相应段? 2.等待cpu调度到此程序,也即是获取cpu的使用权 3.运行balabala... 那我fork一个进程又是什么回事??? 复制与当前程序(进程)一模一样的资源与代码??...
  • 这样,虽然指令和数据都是以0、1代码形式存在存储器,但CPU可以判断出取指阶段访存取出的0、1代码是指令在执行阶段访存取出的0、1代码是数据。 计算机区分指令和数据有以下2种方法:  通过不同的时间段来...
  • cpu怎样区别指令和数据

    千次阅读 2013-09-23 23:30:20
    指令和数据都是以二进制存放在内存执行的时候cpu怎么来区分呢? 计算机可以从时间和空间两方面来区分指令和数据,时间上,取指周期从内存取出的是指令,而执行周期从内存取出或往内存写入的是数据,...
  • 计算机的指令执行以及性能指标

    千次阅读 2018-02-08 18:11:09
    PC:程序计数器是用于存放下一条指令所在单元的地址的地方。程序的运行,本质就是一条或者多条指令执行;一条指令的运行过程:取出指令、分析指令执行指令;计算机硬件的主要指标: 1.机器字长:CPU一次能处理...
  • 控制器 可区分存储单元中存放的是指令还是数据。 (存储器,运算器,控制器,用户) 存放执行指令的寄存器是 IR (MAR,MDR,PC,IR)
  • 浅谈RISC CPU(精简指令集处理器)

    千次阅读 2020-10-24 11:32:16
    其通道只包含最有用的指令,确保数据通道快速执行每一条指令,使CPU硬件结构设计变得更为简单,尽量使用单周期指令,便于流水线操作执行。 今天我们再深入的聊一聊RISC CPU,那么首先什么是CPUCPU是什么 CPU...
  • CPU执行算术运算或逻辑运算时,常将源操作数和结果暂存在()   A、程序计数器(PC)   B、累加寄存器(AC)   C、指令寄存器(IR)   D、地址寄存器(AR) 解析: 程序计数器:存放执行指令的地方,计算...
  • CPU中的一些执行机制

    千次阅读 2014-06-03 19:44:42
    但上网查了查,发现体系结构还是蛮重要的,关键在于CPU执行程序的过程.几乎所有机器相关的优化都是靠CPU的相关知识.所以还是有必要多写一篇来记录一下所学的知识.   到底CPU是怎么工作的? 从物理角度来说的话,CPU会...
  • 5.指令在存储器按顺序存放。通常,指令是顺序执行的。特殊情况下,可根据运算结果或指定的条件来改变运算顺序。 6.以CPU为核心,以存储器为中心。 五大部件 存储体 存储体 -包含- 存储单元 -包含- 存储元件 ...
  • CPU 执行程序的秘密,藏了这 15 张图里

    千次阅读 多人点赞 2020-10-10 23:29:52
    代码写了那么多,你知道 a = 1 + 2 这条代码是怎么被 CPU 执行的吗? 软件用了那么多,你知道软件的 32 位和 64 位之间的区别吗?再来 32 位的操作系统可以运行 64 位的电脑上吗?64 位的操作系统可以运行 32 位...
  • Intel CPU的CPUID指令

    千次阅读 2014-04-23 15:38:34
    Intel CPU的CPUID指令  Intel有一个超过100页的文档,专门介绍cpuid这条指令,可见这条指令涉及内容的丰富。  记得去年的时候,曾经有个“英布之剑”问过我这条指令,当时并没有给出一个满意的回答,现在放假...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 134,937
精华内容 53,974
关键字:

在cpu中存放指令执行结果