美文网首页
CPU是怎样执行代码的

CPU是怎样执行代码的

作者: JustinBetter | 来源:发表于2017-03-16 12:57 被阅读353次

基础概念

  • 程序是指令和数据的组合体,被复制到内存才能运行。
  • 内存地址是保存指令和数据的场所,通过地址标记
  • CPU 能识别和执行的只有机器语言。

CPU 结构

CPU 内部由寄存器、控制器、运算器和时钟四个部分构成,由电流信号相互连通

  • 寄存器: 保存指令、数据
  • 控制器: 读取内存输入寄存器,控制指令流转
  • 运算器: 运算寄存器中的数据
  • 时钟:发出计时信号,代表运算速度

寄存器

程序是把寄存器作为对象来描述的,程序运行就是依赖寄存器的控制。

  • 存储的内容既可以是指令也可以是数据
  • 数据分为“用于运算的数值”和“表示内存地址的数值”两种。数据种类不同,存储该数值的寄存器也不同

累加寄存器 --> 运算的数值
基址寄存器和变址寄存器 --> 表示内存地址的数值
标志寄存器 --> 运算处理后的CPU的状态
程序计数器 --> 下一条指令所在内存的地址
栈寄存器 --> 栈区域的起始地址

程序函数的处理

  • 机器语言的 call 指令和 return 指令能够解决这个问题。函数调用使用的是 call 指令,而不是跳转指令。在将函数的入口地址设定到程序计数器之前,call 指令会把调用函数后要执行的指令地址存储在名为栈的主存内。函数处理完毕后,再通过函数的出口来执行 return 命令。return 命令的功能是把保存在栈中的地址设定到程序计数器中

CPU 处理

CPU 能执行的主要机器语言指令

  • 数据转送指令 --> 寄存器和内存、内存和内存、寄存器和外围设备之间的数据读写操作
  • 运算指令 --> 用累加寄存器执行算术运算、逻辑运算、比较运算和移位运算
  • 跳转指令 --> 实现条件分支、循环、强制跳转等
  • call/return指令 --> 函数的调用/返回调用前的地址

参考:
《程序是怎样跑起来的》一书
http://cs.hnjk.net/T24Courses/2411/main/page/c040200.html

相关文章

  • CPU是怎样执行代码的

    基础概念 程序是指令和数据的组合体,被复制到内存才能运行。 内存地址是保存指令和数据的场所,通过地址标记。 CPU...

  • 系统性能调优必知必会

    01 | CPU缓存:怎样写代码能够让CPU执行得更快? CPU缓存通常分为大小不等的三级缓存 我们的代码优化目标...

  • 📒【编译】代码是如何运行的之JavaScript执行过程

    Q:代码是如何运行的? 代码是由CPU执行的,而目前的CPU并不能直接执行诸如if…else之类的语句,它只能执行...

  • C程序的入口

    当我们将1个程序交给CPU去执行的时候.CPU只会执行程序中main函数中的代码.别的地方的代码是不会执行的 所以...

  • Python多进程

    现在, 多核CPU已经非常普及了, 但是, 即使过去的单核CPU, 也可以执行多任务。 CPU执行代码都是顺序执行...

  • 如何使用Python脚本分析CPU使用情况的?

    用以分析Python中CPU使用情况。CPU分析是通过分析CPU执行代码的方式来测量代码的性能,以此找到代码中的不...

  • 如何使用Python脚本分析CPU使用情况的?

    用以分析Python中CPU使用情况。CPU分析是通过分析CPU执行代码的方式来测量代码的性能,以此找到代码中的不...

  • 异步和协程介绍

    当执行一段代码时,由CPU执行,磁盘读写、网络通信等IO操作相比于CPU执行代码的速度要慢很多,所以如果是同步的情...

  • C - 基础总结

    1. 程序运行模式 当我们将一个程序交给CPU去执行的时候,CPU只会执行main函数中的代码,别的地方的代码是不...

  • 如何使用python分析CPU使用情况? 大概是这样吧

    前言 现在小编给大家分享一个可以分析CPU使用情况的代码,CPU分析是通过分享CPU执行代码的方式来测量代码的性能...

网友评论

      本文标题:CPU是怎样执行代码的

      本文链接:https://www.haomeiwen.com/subject/bnfrnttx.html