• 技术文章 >常见问题

    应用程序的指令可以分为什么

    藏色散人藏色散人2021-02-08 11:11:13原创25269

    应用程序的指令可以分为中央处理器即CPU的指令集以及用于向操作系统请求特定的服务这两类;中央处理器操作指令的处理流程大概分为取指、译码、执行、访存、写回和更新PC。

    本文操作环境:windows7系统,DELL G3电脑。

    理论上说,应用程序里的指令可以分成中央处理器(CPU)的指令集以及用于向操作系统请求特定的服务这两类。

    中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。

    CPU操作指令的处理流程大概分为:取指、译码、执行、访存、写回等几步。每条指令需要1~6个字节不等,这取决于需要哪些字段。每条指令的第一个字节表明指令的类型:高4位是代码部分(例:6为整数类操作指令),低4位是功能部分(例:1为整数类中的减法指令) 61合起来即为sub指令。

    处理指令流程

    指令集的一个重要性质就是字节编码必须有唯一的解释。任意一个字节序列要么是一个唯一的指令序列的编码,要么就不是一个合法的字节序列。因为每条指令的第一个字节有唯一的代码和功能组合,给定这个字节,我们就可以决定所有其他附加字节的长度和含义。

    每条指令需要1~6个字节不等,这取决于需要哪些字段。每条指令的第一个字节表明指令的类型:高4位是代码部分(例:6为整数类操作指令),低4位是功能部分(例:1为整数类中的减法指令) 61合起来即为sub指令。

    下面是处理每条指令的流程图:

    取指(fetch)

    取值阶段从存储器读取指令字节,放到指令存储器(CPU中)中,地址为程序计数器(PC)的值。它按顺序的方式计算当前指令的下一条指令的地址(即PC的值加上已取出指令的长度)。

    译码(decode)

    ALU从寄存器文件(通用寄存器的集合)读入最多两个操作数。(即一次最多读取两个寄存器中的内容)

    执行(execute)

    在执行阶段会根据指令的类型,将算数/逻辑单元(ALU)用于不同的目的。对其他指令,它会作为一个加法器来计算增加或减少栈指针,或者计算有效地址,或者只是简单地加0,将一个输入传递到输出。

    条件码寄存器(CC)有三个条件位。ALU负责计算条件码新值。当执行一条跳转指令时,会根据条件码和跳转类型来计算分支信号cnd。

    访存(memory)

    访存阶段,数据存储器(CPU中)读出或写入一个存储器字。指令和数据存储器访问的是相同的存储器位置,但是用于不同的目的。

    写回(write back)

    写回阶段最多可以写两个结果到寄存器文件。寄存器文件有两个写端口。端口E用来写ALU计算出来的值,而端口M用来写从数据存储器中读出的值。

    更新PC(PC update)

    根据指令代码和分支标志,从前几步得出的信号值中,选出下一个PC的值。

    更多相关知识,请访问PHP中文网

    以上就是应用程序的指令可以分为什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:应用程序
    上一篇:键盘斜杠怎么打出来的 下一篇:具有无线功能的外部设备有哪些

    相关文章推荐

    • 用来存储当前正在运行的应用程序的存储器是什么?• 理论上说应用程序里的指令可以分成什么• outlook是一款什么应用程序• 删除windows桌面上某个应用程序的图标,意味着什么• 在Windows中,将一个应用程序窗口最小化,该程序会怎样运行?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网