精华内容
下载资源
问答
  • 计算机如何执行一条机器指令

    千次阅读 2019-10-11 11:09:38
     在上篇我们谈到,计算机处理段程序,就会将程序翻译成机器指令,然后执行完成相应的任务。执行指令的过程分为取指令阶段、分析取数阶段和执行阶段。 1.取指阶段: 图概念解释: PC(程序计数器),MAR...

    指令运行过程:

     在上篇我们谈到,计算机处理一段程序,就会将程序翻译成机器指令,然后执行完成相应的任务。执行指令的过程分为取指令阶段、分析取数阶段和执行阶段。

    • 1.取指阶段:

      图中概念解释:

      PC(程序计数器),MAR(存储地址寄存器),CU(控制单元),IR(指令寄存器)

      AB(地址总线) ,DB(数据总线), CB(控制总线)。

      取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中去,具体的操作如下:
      ① 将程序计数器(PC)中的内容先送至存储器地址寄存器(MAR),然后送至地址总线(AB).
      ② 由控制单元(CU)经控制总线(CB)向存储器发读命令.

      ③ 从主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR).
      ④ 将MDR的内容送至指令寄存器(IR)中.
      ⑤ 将PC的内容递增,为取下一条指令做好准备.

    在这里插入图片描述

    • 2.分析取数阶段:

      取出指令后,指令译码器(ID)可识别和区分出不同的指令类型.此时计算机进入分析取数阶段,以获取操作数.由于各条指令功能不同,寻址方式也不同,所以分析取数阶段的操作是各不相同的.

      对于无操作数指令,直接进入执行阶段。

      取数要计算操作数有效地址。对于不同的寻址方式,有效地址的计算方法是不同的,有时需要多次访问主存才能取出操作数(间接寻址)。如果通用寄存器中有,则不需要访问主存。

    • 3.执行阶段:

      完成指令规定的各种操作,形成稳定的运算结果,并存储起来。

    计算机的基本工作过程就是取指令、取数、执行指令,然后再取下一条指令… ,如此周而复始,直到指令或外来的干预为止。

    微程序控制基本概念:

     微程序设计技术的实质就是将程序设计和存储技术相结合。用程序设计的思想组织设计控制逻辑,将控制信号编成控制字(微指令),在把微指令组合成微程序,从而对计算机发号施令。 这项技术最早是剑桥大学教授提出,由IBM在1964年成功在IBM360系列机采用并发展起来。现在的计算机基本都是微程序控制的计算机。

    • 微命令:
       一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作.在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令叫做微命令,它是构成控制序列的最小单位.

    例如:打开或关闭某个控制门的电位信号、某个寄存器打入脉冲等。

    • 微操作:
       微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。

    • 微指令:
       微指令是指控制存储器中的一个单元的内容,即控制字,是若干个微命令的集合.存放控制字的控制存储器的单元地址就称为微地址

    • 微程序:
       一系列微指令的有序集合就是微程序。每一条机器指令都对应一个微程序。

    几个周期区别

    一个振荡周期=一个时钟周期;
    一个机器周期=六个状态周期;
    一个状态周期=两个节拍;
    一个节拍=一个时钟周期;
    一个指令周期=N个机器周期;
    综上:1个指令周期=N个机器周期=6N个状态周期=12N个节拍=12N个时钟周期=12N个振荡周期
    时钟周期:一个脉冲所需要的时间,为时钟晶振频率的倒数
    指令周期:执行一条指令所需要的时间,是从取指令、分析指令到执行完指令所需的全部时间
    机器周期:计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期,所以一个指令周期一般由若干个机器周期组成。

    寻址方式:

    • 立即寻址方式

        操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。这种操作数称为立即数。立即寻址方式所提供的操作数紧跟在操作码后面,与操作码一起放在指令代码段中,不需要到其他地址单元中去取。这种寻址方式主要用于给寄存器或存储单元赋初值的场合。立即寻址方式是这七种寻址方式中速度最快的寻址方式。

    • 寄存器寻址方式

      寄存器寻址的特点是操作数在CPU内部的寄存器中,在指令中指定寄存器号。由于操作数在寄存器中,不需要通过访问存储器来取得操作数,所以采用寄存器寻址方式的指令执行速度较快。

    • 直接寻址方式

      直接寻址的操作数在存储器中,指令直接包含有操作数的有效地址。

    • 寄存器间接寻址方式

      寄存器间接寻址的操作数在存储器中,操作数有效地址在寄存器中

    • 寄存器相对寻址方式

      该寻址方式是以指定的寄存器内容,加上指令中给出的位移量(8位或16位),并以一个段寄存器为基准,作为操作数的地址。指定的寄存器一般是一个基址寄存器或变址寄存器。

    • 基址变址寻址方式

      基址加变址寻址方式是指将寄存器(该寄存器一般指基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。

    • 相对基址变址寻址方式

      操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容及指令中给定的位移量相加得到。

    展开全文
  • 计算机指令系统

    千次阅读 多人点赞 2020-05-27 12:01:48
    计算机指令系统性的发展,指令系统的性能要求,指令格式,操作数类型,指令和数据的寻址方式。

    指令系统的发展和性能要求

    1.1指令系统的发展

    程序一一用于解决实际问题的一系列的指令;
    指令一一使计算机执行某种操作的命令
    从组成的层次结构来说,计算机的指令可分为如下3类:

    • 微指令:微程序级的命令,它属于硬件;
    • 机器指令(指令):可完成一个独立的算术或逻辑运算;
    • 宏指令:由若干条机器指令组成的软件指令,它属于软件

    指令系统: 一台计算机中所有机器指令的集合,指令系统的格式和功能直接影响机器的硬件结构、软件系统、以及机器的适用范围。

    计算机指令系统的发展过程:
    ● 50年代:只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。
    ● 60年代后期:增加了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化,出现了系列计算机
    ● 70年代末期:复杂指令系统计算机(CISL)、精简指令系统计算机(RSC),早期的X86处理器(486之前)都是CISL指令系统,奔腾系列CPU使用了RSC和CC构架相结合的办法;

    系列计算机:
    基本指令系统、基本体系结构相同的一系列计算机,不过具体的器件、结构和性能都不会完全相同,一般新机种在各方面要优于旧机种。一个系列往往有多种型号,各型号计算机的指令系统是向下兼容的,新机种的指令系统包含旧机种的全部指令,如 Pentiu系列PC机。

    CISC (complex instruction set computer) 采用复杂的的指令系统,来达到增强计算机的功能、提高机器速度的目的
    CISC指令系统的特点:
    1.指令系统复杂庞大,指令数目多
    2.指令格式多,字长不固定,多种寻址方式;
    3.可访存指令不受限制;
    4.各种指令的执行时间相差很大;
    5.大都采用微程序控制器;

    RISC (Reduced instruction set computer) 从简化指令系统和优化硬件设计的角度来提高系统的性能与速度。
    RISC指令系统的主要特点:
    1.选取使用频率高的简单指令;
    2.指令长度固定,指令格式少,寻址方式种类少
    3.采用流水线技术
    4.使用较多的通用寄存器,减少访存;
    5.控制器以组合逻辑控制为主;
    6.采用优化编译技术;

    1.2 指令系统性能的要求
    指令系统的性能决定了计算机的基本功能,它的设计直接关系到计算机的硬件结构和用户的需要。
    一个完善的指令系统应满足如下四方面的要求:
    ①.完备性常用指令齐全,编程方便;
    ②.有效性程序占用内存少,运行速度快;
    ③.规整性指令和数据的使用规则统一,易学易记;
    ④.兼容性:同一系列的低档计算机的程序能够在新的高档计算机上运行;

    指令系统的规整性要求: 规整性包括对称性、匀齐性、指令格式和数据格式的一致性三方面的要求。
    1.对称性:所有的指令都可使用各种寻址方式
    2.匀齐性:一种操作性质的指令可以支持各种数据类型
    3.指令格式和数据格式的一致性:指令长度和数据长度有一定的关系,以方便处理和存取

    1.3 低级语言与硬件结构的关系
    ● 低级语言: 机器语言、汇编语言,是一种面向机器的语言,和具体机器的指令系统密切相关。
    ● 高级语言与低级语言的比较如表所示:

    比较内容 高级语言 低级语言
    1 对机器独立的程度 独立 不独立
    2 编制程序的难易程度
    3 编制程序所需的时间 较长
    4 程序执行时间 较长
    5 编译过程对计算机资源的要求
    对程序员的训练要求 高级语言 低级语言
    通用算法 需要 需要
    语言规则 了解 较多了解
    硬件知识 不需要 需要

    指令格式

    指令的一般格式:
    指令字(简称指令):表示一条指令的机器字。
    指令格式:指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。
    在这里插入图片描述
    操作码字段: 表征指令的操作特性与功能
    地址码字段: 通常指定参与操作的操作数的地址。

    2.1 操作码
    操作码字段的位数取决于指令系统的规模;
    操作码的类型:

    • 固定长度的操作码:
      操作码字段为4位,则指令系统中的指令数目为24=16条。
      ◆特征:所有指令长度均相同。
      ◆优点:控制简单,速度快,适用于指令条数不多的场合
    • 可变长度的操作码
      ◆特征:利用操作码扩展技术将操作码扩展到地址码字段,使各类指令的操作码长度不相同;
      ◆优点:充分利用软硬件资源,适用于大规模的指令系统。

    2.2 地址码
    一条指令格式中有几个地址码字段,就称为是几地址指令;

    • 零地址指令:
      在这里插入图片描述
      ①无任何操作数运算。(如NOP、HALT等指令)。
      ②单操作数运算:隐含一个操作数,如Acc。(如CBW指令)
      OP (Acc) → Acc

    • 一地址指令
      在这里插入图片描述
      ①单操作数运算:OP (A1) → A1(如INC指令)
      ②双操作数运算:隐含一个操作数,如Acc
      A(cc) OP (A1)→Acc/A1 (如MUL指令)

    • 两地址指令
      在这里插入图片描述
      功能:(A1) OP (A2) → A1 (如ADD、XOR等指令)

    • 三地址指令
      在这里插入图片描述
      功能:(A1) OP (A2) → A3

    • 多地址指令(如四地址)
      这类指令功能强,一般用高档小型机或中大型机,用于实现成批数据处理,字符串处理、向量或矩阵运算指令等

    两地址指令的分类:
    在这里插入图片描述

    • 根据操作数的物理位置分:
      存储器-存储器(SS)型指令
      A1、A2均为存储单元;
      这类指令的操作时都涉及到内存单元,参与操作的数都放在内存内。
      寄存器-寄存器(RR)型指令
      A1、A2均为寄存器;
      这类指令执行过程中,需要多个通用寄存器或个别专用寄存器,从寄存器中取操作数,把操作数结果存放到另一个寄存器中,执行时不需要访问内存。
      寄存器-存储器(RS)型指令
      A1、A2中一个为寄存器,一个为存储单元;
      执行此类指令时,既要访问内存单元,又要访问寄存器。

    • 指令的操作码扩展技术
      一个指令系统中,若操作码长度固定,且指令格式不同
      指令格式如图:
      在这里插入图片描述
      操作码字段长度取决于指令系统中的指令总数目,地址码较少的指令,编码浪费。

      操作码扩展
      对于不需要某个地址码的指令,把它们的操作码扩充到该地址字段;既充分利用指令字的各字段,又在不增加指令长度的情况下扩展操作码的长度;
      举例:设某指令长16位,包括4位基本操作码字段和3个4位地址码字段。
      在这里插入图片描述
      ① 若全是三地址指令,则最多能有多少条指令?
      操作码为4位的,则指令条数为2<sup>4</sup>=16。

      ② 若三地址指令需15条,两地址指令需15条,单地址指令需15条零地址指令需16条应如何安排?
      可使用操作码扩展技术,缩短固定操作码长度
      在这里插入图片描述
      ① 为了缩短指令的平均长度,应用频率比较高的指令应该分配较短的操作码。
      ② 确保指令码的唯一性。

    在这里插入图片描述
    在这里插入图片描述

    2.3 指令字长度

    • 机器字长
      运算器一次能处理的二进制数的位数。机器指令的长度直接决定着CPU运算的精度直接寻址能力的大小
    • 指令字长
      一个指令字中包含二进制代码的位数;
      指令字长由操作码长度操作数长度个数共同决定。
      ● 指令有半字长单字长双字长多字长等不同的长度类型。
      ● 指令系统可分为等长指令字结构变长指令字结构两种。

    2.4 指令助记符

    • 指令助记符:使用3~4个英文缩写字母来表示的指令操作码
    • 在不同的计算机中,指令助记符的规定是不一样的,指令助记符只是指令操作码字段的一种表示方法;机器内部保存的还是二进制代码形式的机器指令;
      由汇编或编译程序,将助记符翻译成机器代码。
      在这里插入图片描述
      在这里插入图片描述
      指令举例:
      在这里插入图片描述

    操作数类型

    机器指令对数据进行操作,数据通常分为以下四类:

    • 地址数据无符号整数,通过某种运算确定操作数在主存中的有效地址;
    • 数值数据定点整数、小数;浮点数;压缩十进制数
    • 字符数据文本数据或字符串;
    • 逻辑数据由若干二进制位组成,每位的值可以是1或0。

    指令和数据的寻址方式

    4.1指令的寻址方式

    • 1.顺序寻址方式
      当程序执行的流向不发生变化时,指令的寻址方式;由程序计数器记录所要执行指令的地址;一般在每次取指之后,其值加本条指令所占存储单元数。

    • 2.跳跃寻址方式
      当程序转移执行时的指令寻址方式,程序计数器的内容由本条指令给出,而不是顺序改变。

      • 直接寻址方式:指令中给出要转向的有效地址
      • 相对寻址方式:指令中给出要转向单元与当前单元的偏移量
      • 间接寻址方式:指令中给出保存要转向地址的寄存器或存储单元
        在这里插入图片描述

    4.2 操作数的寻址方式
    一种单地址码指令的结构如下图:
    在这里插入图片描述

    • 将指令中的形式地址A变换成操作数有效地址的过程,称为寻址过程。
    • 典型而常用的寻址方式有:隐含寻址、立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、偏移寻址、堆栈寻址。
    隐含寻址 立即寻址
    在这里插入图片描述 在这里插入图片描述
    直接寻址 间接寻址
    在这里插入图片描述 在这里插入图片描述
    寄存器寻址 寄存器间接寻址
    在这里插入图片描述 在这里插入图片描述
    偏移寻址 相对寻址
    在这里插入图片描述 在这里插入图片描述
    变址寻址 基址寻址
    在这里插入图片描述 在这里插入图片描述
    堆栈寻址
    在这里插入图片描述
    • 隐含寻址
      ● 操作数地址隐含在操作码中;
      ● 如8086的MUL指令,被乘数隐含在AX(16位)或AL(8位)中
      ●指令字中少了一个地址字段,可缩短指令字长;

    • 立即寻址
      ● 形式地址A就是操作数;
      ● 优点:指令执行阶段不需要访存,速度快
      ● 缺点:形式地址A字段的位数限制了立即数的范围

    • 直接寻址
      ● 有效地址由形式地址字段A直接给出;
      ● EA=A
      ● 特点:执行阶段访问一次存储器,A的位数决定了该指令操作数的寻址范围;操作数的地址不易修改(必须修改A)

    • 间接寻址
      ● 有效地址由形式地址字段A间接提供,
      ● EA=(A)
      ● 特点:可扩大寻址范围;A字段的长度受指令字长和指令格式的限制;寻址时,可根据需要进行多次间址;可用寻址特制字段区分直接寻址和间接寻址方式

    • 寄存器寻址
      ● 形式地址字段A为寄存器编号
      ● EA=Ri
      ● 特点:执行阶段不访存,只访问寄存器,执行速度快,寄存器个数有限,可缩短指令字长

    • 寄存器间接寻址
      ● 形式地址字段A用于指出存放有效地址的寄存器编号;
      ● OEA=(Ri)
      ● 特点:执行阶段访存;○便于编制循环程序

    • 偏移寻址
      ● 直接寻址和寄存器间接寻址方式的结合
      ● 有效地址EA=A+® A是显式的形式地址字段;OR可以是显式的,也可以隐含的,某个专用的寄存器;
      ● 常用的偏移寻址
      ○ 变址寻址:EA=(变址R)+A,变址R+1变址R
      ○ 基址寻址:EA=(基址R)+A,A+1→A
      ○ 相对寻址:EA=(专用R)+A

    • 变址寻址方式
      ● 形式地址A作为基准地址,
      ● 变址寄存器作为可修改量;变址寄存器可自动增减量
      ● 适用于数组、字符串等成批连续数据的处理;
      ● 变址寄存器:可用通用寄存器充当,一般包含多个,在指令中要用一个字段指明当前所用的变址寄存器;

    • 基址寻址方式
      ● 基址寄存器作为基准地址,形式地址A作为可修改量;
      ● 形式地址相当于位移量,可正可负;一般基址寄存器为专用寄存器
      ● 基址寻址原来用于大型机,用作将用户地址转换成物理地址;可以实现地址的重定位,和扩大直接寻址空间
      ● 用途:
      ○ 大型机中,一般用特权指令来管理;
      ○ 小、微型机中,一般与变址寻址联合使用

    • 相对寻址方式
      ● 寻址特征:是基址寻址的一种变通
      ○ 程序计数器PC提供基准地址;
      ○ 形式地址作为位移量D,专用R可正可负;OEA:(PC )+D:
      ●适用于:所要寻找的操作数与现行指令位置间隔固定的场合

    • 堆栈寻址方式
      ● 隐含寻址方式的一种变形,其隐含的操作数在堆栈段中,由栈顶指针指定
      ● 8086堆栈指令举例
      ○ 入栈指令 PUSH SRC
      SP-2→SP;SRC→[SP]
      ○ 出栈指令 POP DST
      [SP]→DST;SP+2→SP

    例题在这里插入图片描述

    例题:
    在这里插入图片描述

    例题:
    设某机字长16位,直接寻址空间为128字,变址时的位移量为-64~+63,16个通用寄存器都可以作为变址寄存器,请设计一套指令系统,满足下列寻址类型的要求:
    (1)直接寻址的二地址指令3条
    (2)变址寻址的一地址指令6条
    (3)寄存器寻址的二地址指令8条;
    (4)直接寻址的一地址指令12条;
    (5)零地址指令32条。
    ● 直接寻址的二地址指令3条
    在这里插入图片描述
    ○这3条指令的操作码为00、01、10;
    ● 变址寻址的一地址指令6条:
    在这里插入图片描述
    ○这6条指令的操作码为:11000~11101
    ● 寄存器寻址的二地址指令8条:
    在这里插入图片描述
    这8条指令的操作码为11110000~11110111直接寻址的一地址指令12条:

    这12条指令的操作码为:111110000~111111011
    ● 零地址指令32条:
    在这里插入图片描述
    这32条指令的操作码为:
    111111000000000~11111110000111

    例题:
    某计算机数据线和地址线均是8根,有一条相对寻址的无条件转移指令存于内存的20H单元中,指令给出的偏移量是15H,设该指令占用2个字节,请计算:
    (1)取该条指令时PC的内容。
    (2)该指令执行结束时Pc的内容。
    解答:
    (1)取指令时,PC的内容为20H
    (2)转移地址=PC+2+D=20H+2+15H=37H
    该条指令执行结束时PC的内容是37H。

    例题:
    某指令系统指令字长为20位,具有双操作数、单操作数和无操作数3种指令格式,每个操作数地址规定用6位表示,当双操作数指令条数取最大值,而且单操作数指令条数也取最大值时,这3种指令最多可能拥有的指令数各是多少?
    解:按操作码扩展技术来设计,双操作数指令最多28-1条,单操作数指令最多63条,因此无操作数指令条数的最大值为64条
    在这里插入图片描述

    例题
    某机器字长为16位,主存容量是64K字,有专用的变址寄存器,采用单字长单地址指令,共有54条指令。试采用直接、立即、变址、相对四种寻址方式设计指令格式。解答
    在这里插入图片描述
    ○54条指令,故操作码需要6位。因为四种寻址方式,所以寻址特征位取2位,余下的8位作为形式地址D。其指令格式为
    O寻址模式X定义如下:
    X=00直接寻址有效地址E=D(256个单元)
    X=01立即寻址D=操作数
    X=10变址寻址有效地址E=®+D(64K)
    X=11相对寻址有效地址E=(PC)+D(64K)其中R为变址寄存器(16位)、PC为程序计数器(16位)相对寻址和变址寻址中,D可正可负。

    展开全文
  • 计算机指令格式

    千次阅读 2017-11-16 15:06:56
    从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中包含多种信息。但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。因此,如何合理...

    计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。因此,如何合理、科学地设计指令格式,使指令既能给出足够的信息,又使其长度尽可能地与机器的字长相匹配,以节省存储空间,缩短取指时间,提高机器的性能,这是指令格式设计中的一个重要问题。

    计算机是通过执行指令来处理各种数据的。为了指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息:

    (1)操作码。它具体说明了操作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来完成不同的操作。

    (2)操作数的地址。CPU通过该地址就可以取得所需的操作数。

    (3)操作结果的存储地址。把对操作数的处理所产生的结果保存在该地址中,以便再次使用。

    (4)下条指令的地址。执行程序时,大多数指令按顺序依次从主存中取出执行,只有在遇到转移指令时,程序的执行顺序才会改变。为了压缩指令的长度,可以用一个程序计数器(ProgramCounter,PC)存放指令地址。每执行一条指令,PC的指令地址就自动+1(设该指令只占一个主存单元),指出将要执行的下一条指令的地址。当遇到执行转移指令时,则用转移地址修改PC的内容。由于使用了PC,指令中就不必明显地给出下一条将要执行指令的地址。这里写图片描述

    一条指令实际上包括两种信息即操作码和地址码。操作码(OperationCode,OP)用来表示该指令所要完成的操作(如加、减、乘、除、数据传送等),其长度取决于指令系统中的指令条数。

    地址码用来描述该指令的操作对象,它或者直接给出操作数,或者指出操作数的存储器地址或寄存器地址(即寄存器名)。

    指令包括操作码域和地址域两部分。根据地址域所涉及的地址数量,常见的指令格式有以下几种。

    ①三地址指令:一般地址域中A1、A2分别确定第一、第二操作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。

    ②二地址指令:地址域中A1确定第一操作数地址,A2同时确定第二操作数地址和结果地址。

    ③单地址指令:地址域中A 确定第一操作数地址。固定使用某个寄存器存放第二操作数和操作结果。因而在指令中隐含了它们的地址。

    ④零地址指令:在堆栈型计算机中,操作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有操作码而没有地址域。

    ⑤可变地址数指令:地址域所涉及的地址的数量随操作定义而改变。如有的计算机的指令中的地址数可少至 0个,多至6个。

    展开全文
  • 一条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就是这样一条一条地执行指令,完成所有规定
    展开全文
  • 计算机加电后执行的第一条指令

    千次阅读 2013-10-10 15:53:31
    步: 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向cpu发出并保持个reset(重置)信号,让cpu内部自动恢复到初始状态,但cpu在此刻不会马上执行指令。...
  • 指令集: 个给定的计算机体系结构所包含指令集合。    3. 尽管机器语言种类繁多,但彼此之间十分类似,因此其差异性更像人类语言的“方言”,而并非独立语言,因此,了解其中种机器语言之后,对其他机器...
  • 计算机组成原理 指令系统(

    千次阅读 多人点赞 2018-08-14 11:58:15
    本文主要介绍指令的基本格式以及寻址方式:   指令其实就是组有特殊意义的二进制数,...指令字长度:指令包含的二进制数的位数 机器字长:计算机能直接处理的二进制数的位数,通常与主存单元的位数一致...
  • 一条指令在cpu的执行流程

    万次阅读 2014-05-22 15:57:25
    一条指令在cpu的执行流程(理解CPU组成) CPU: 1.寄存器; 2.控制器CU(Control Unit):  指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和操作控制器OC(OperationController); 3....
  • 计算机指令执行过程详解

    千次阅读 2020-12-31 00:40:55
    计算机的基本组成 冯·诺依曼计算机的特点(机器以运算器为中心) 1. 计算机由控制器(分析和执行机器指令并控制各部件的协同工作)、运算器(根据控制信号对数据进行算术运算和逻辑运算)、存储器(内存存储...
  • 一条指令执行的步骤

    千次阅读 2020-02-23 18:45:57
    指令分为两个部分:“操作码”“地址码”,现在假设你写好一个程序,在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的...
  • 计算机中,执行一条指令所需要的时间称为指令周期,完成一项基本操作所需要的时间称为机器周期,时钟脉冲的重复周期称为重复周期。因此,() A. 时钟周期大于机器周期 B. 时钟周期等于机器周期 C. 机器周期大于指令...
  • 在2005年,部典型的个人计算机可以每秒执行大约30亿条指令计算机通常并不会执行一些很复杂的指令来获得额外的机能,更多地它们是在按照程序员的排列来运行那些较简单但为数众多的短指令。 一般情况下,
  • 计算机指令集以及对比

    千次阅读 2018-09-28 14:43:53
    复杂指令集与精简指令集 两种主要的计算机处理器体系结构: CISC(Complex ...即 冯·诺依曼结构(普林斯顿结构),指令与数据存储在同一存储器; 采用CISC结构的处理器,指令线与数据线分时复用; 程序...
  • 指令周期:取出并执行一条指令所需要的时间(解释一条指令所需要的时间) 带有间址寻址的指令周期 因为寻址方式的不同,所以有可能是间址寻址,所以在执行周期要取出操作数,需要进行两次访存,间址周期执行的是...
  • 计算机组成原理(唐朔飞第二版)301页,为什么采用扩展操作码技术后,比如说四位操作码就最多只能有15条一地址指令!这么做的主要作用是什么? 这是操作码不固定的指令格式,四位是基本的操作码,还可以扩充,但是...
  • 计算机系统结构 计算机指令集结构

    千次阅读 2016-05-05 23:57:56
    、寻址方式 二、指令集结构的功能设计对于指令集的基本要求是:完整性、规整性、高效性和兼容性。 2.1 CISC指令集结构的功能设计1.面向目标程序增强指令功能1)增强运算型指令的功能 2)增强数据传送指令的功能 3...
  • 计算机指令与运算基础原理笔记

    千次阅读 2019-10-02 16:59:48
    一、汇编代码与指令 1.要让程序在一个 Linux 操作系统上跑起来,需要把整个程序翻译成汇编语言(ASM,Assembly Language)的程序,这个过程叫编译...这一条条机器码,就是一条条的计算机指令。这样一串串的 16 进制...
  • 第2章 计算机指令集结构设计 1. 通常可按哪5个因素对... 在对计算机指令集结构进行分类的5个因素,哪种是各种指令集结构之间最主要的区别?CPU操作数的存储方法,即在CPU中用来存储操作数的存储单元的类...
  • 计算机指令级并行

    千次阅读 2012-12-17 22:17:46
    提高桌面级计算机指令级并行度的方法 http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=13367 作者:未知 厚朴教育来源:转载 点击数:525 更新时间:2011-7-24  并行计算...
  • 计算机组成原理——指令格式

    万次阅读 多人点赞 2019-06-01 02:24:00
    为了指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息: (1)操作码(OP),具体说明了操作的性质及功能 (2)第一操作数的地址A1A_{1}A1​ (3)第二操作数的地址A2A_{2}A2​ (4)操作结果存放...
  • 计算机指令的执行过程详解

    千次阅读 2020-05-04 20:15:19
    比如说我现在想执行一条指令,执行完这个指令,我会从存储器里面取一个数据送到我的运算器里面进行运算,那么这过程到底是在计算机里面是怎么执行的呢? 首先,它涉及到两个部分,就是一个是控制器,它在CPU里面,...
  • 计算机如何区分指令和数据(

    万次阅读 多人点赞 2019-09-03 09:44:27
    计算机中什么作用?以及它们怎样存储?才能回答如何区分它们以及为何要区分。首先我们要搬出冯诺依曼计算机体系架构,因为它回答了大部分问题。 在冯诺依曼计算机架构体系当中,计算机有以下特定: 1.计算机由...
  • 计算机指令格式

    2020-04-02 09:20:42
    指令系统是计算机的所有指令的集合构成该机的指令系统,也称为指令集。 指令的基本格式 是由操作码字段(符号表示为OP)和地址码字段(符号表示为A)构成,指令字长就是整条指令的长度。 这个是指令的基本格式 由...
  • 、寻址方式 二、指令集结构的功能设计对于指令集的基本要求是:完整性、规整性、高效性和兼容性。 2.1 CISC指令集结构的功能设计1.面向目标程序增强指令功能1)增强运算型指令的功能 2)增强数据传送指令的功能 3...
  • 计算机指令集的相关概念

    千次阅读 2020-05-08 17:28:11
    计算机指令就是指挥机器工作的指示和命令,程序就是系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每种新型的CPU在设计时就...
  • 一条指令在cpu的执行流程(理解CPU组成)

    万次阅读 多人点赞 2014-04-15 13:04:03
    几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令指令译码、执行指令、访存取数、结果写回。
  • 1、指令系统概述   计算机的程序时由一系列的机器指令组成的。   ...而机器指令介于宏指令和微指令之间,通常简称指令,每一条指令可完成一个独立的算数运算或逻辑运算操作...
  • 计算机组成原理-指令系统

    千次阅读 2019-03-28 09:27:44
    第四章 指令系统 4.1 指令格式 指令的最基本格式 【操作码 | 地址码】 (1)操作码: 反应机器做...(2)一条指令至少需要至少包含以下几个信息           1....
  • 一条指令通常包括操作码字段和地址码字段两部分 指令系统(指令集): 一台计算机的所有指令的集合 指令系统是计算机的主要属性,位于硬件和软件的交界面上 指令的基本格式 指令 一条指令通常包括操作码字段和...

空空如也

空空如也

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

一条计算机指令中包含什么