CPU是如何执行指令的(实例讲解)

一、CPU的主要功能

1、进行各种算数运算

2、进行各种逻辑判断

二、CPU是如何执行指令的

所谓的指令,都是要先加载到内存中,任何才能被CPU读取,并执行。

比如一个Java程序,写出来的是一个 .java 源代码文件,编译得到 .class 二进制文件(仍然是在硬盘上)。运行程序的时候,jvm就会把这个 .class 文件加载到内存中,再进一步翻译成 CPU能识别的二进制指令。

冯诺依曼体系结构规定:一个程序,指令和依赖的数据,都是要在存储器中保存的。CPU如果需要执行,都是要自动的从存储器中读取到对应的指令。

因此,CPU执行程序,大概经历以下三个阶段:

1、读指令(把内存中的指令数据,读取到CPU的寄存器中)

        CPU上也能存储数据,存储数据的模块就称为“寄存器”。速度比内存更快,但是存储空间更小,更贵。CPU的寄存器,往往就是几百个字节左右大小。

2、解析指令(理解当前指令要做什么)

3、执行指令

(上述讨论的是简化版模型,实际的CPU会更复杂)

三、CPU的指令表与指令执行

每个 CPU被设计出来的时候都会提供一个这样的指令表。

        所谓指令,即指导 CPU 进⾏⼯作的命令,主要有操作码 + 被操作数组成。 其中操作码⽤来表⽰要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也可能是 寄存器编号等。指令本⾝也是⼀个数字,⽤⼆进制形式保存在内存的某个区域中。

        此处一个指令是8位的二进制数字,前四位用来区分这是一个什么样的指令,后四位是操作数。不同的指令有不一样的作用。

        表中的四位 opcode 就是 CPU 的操作码,用于区分是一个什么样的指令。

实例练习:

此处假设从0号地址开始执行。

        图中的三个箭头,从上到下依次代表着。取指令、解析指令、执行指令。        

        由于不是跳转指令,则顺延往下继续执行指令。如果遇到的是跳转指令再跳转到相应位置,执行指令。

        接下来的执行过程也是如图所示的一样,依次往下执行。

相关推荐

  1. jvm-证明cpu指令乱序执行案例

    2024-03-21 23:34:04       25 阅读
  2. CPU怎么实现LOCK指令

    2024-03-21 23:34:04       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 23:34:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 23:34:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 23:34:04       87 阅读
  4. Python语言-面向对象

    2024-03-21 23:34:04       96 阅读

热门阅读

  1. ARM day5

    2024-03-21 23:34:04       41 阅读
  2. Redis Pub/Sub: 实时消息传递的完美解决方案

    2024-03-21 23:34:04       45 阅读
  3. Python和FastAPI语义分析和文本图像

    2024-03-21 23:34:04       43 阅读
  4. css的scss

    2024-03-21 23:34:04       50 阅读
  5. 蓝桥杯2023年第十四届省赛真题-阶乘求和

    2024-03-21 23:34:04       65 阅读
  6. transformer的自注意力模型如何实现自注意力

    2024-03-21 23:34:04       48 阅读
  7. CentOS 8 中安装与配置 MySQL

    2024-03-21 23:34:04       43 阅读
  8. OpenCV图像处理模块详解

    2024-03-21 23:34:04       45 阅读
  9. C语言向C++过渡的基础知识(一)

    2024-03-21 23:34:04       49 阅读
  10. QT5信号函数的绑定方式

    2024-03-21 23:34:04       45 阅读
  11. SpringWeb

    SpringWeb

    2024-03-21 23:34:04      35 阅读