《程序是怎样跑起来的》|第1章 对程序员来说CPU是什么

245 阅读2分钟

热身问答

问题:

  1. 程序是什么?
  2. 程序是由什么构成的?
  3. 什么是机器语言
  4. 正在运行的程序存储在什么位置?
  5. 什么是内存地址?
  6. 计算机的构成元件中,负责程序的解释和运行的是哪个?

答案:

  1. 程序是指示计算机每一步动作的一组指令
  2. 指令和数据
  3. cpu可以直接识别并使用的语言
  4. 内存
  5. 内存中,用来表示命令和数据存储位置的数值

解析:

  1. 一般所说的程序,比如运动会、音乐会的程序等,指的是“行事的先后顺序”。计算机程序也是一样的道理
  2. 程序是指令和数据的组合体。例如“print(hello world)” print是指令,hello world是数据
  3. CPU能够直接识别和执行的只有机器语言。使用C、Java等语言编写的程序,最后都会转化成机器语言。
  4. 硬盘和磁盘等媒介上保存的程序被复制到内存后才能运行
  5. 内存中保存命令和数据的场所,通过地址来标记和制定。地址由整数值表示。
  6. 计算机的构成元件中,根据程序的指令来进行数据运算,并控制整个计算机的设备被称为CPU。大家熟知CMD 锐龙就是CPU的一种。

本章重点:

首先看一下解释和运行程序的CPU。

程序员还需要理解CPU是如何运行的,特别是要弄清楚负责保存指令和数据的寄存器的机制

寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果

1.1 CPU的内部结构解析

image.png

程序启动后,根据时钟信号,控制器会从内存中读取指令和数据。通过对这些指令加以解释和运行,运算器就会对数据进行运算,控制器根据该运算结果来控制计算机

1.2 CPU是寄存器的集合体

image.png

image.png

1.3 决定程序流程的程序计数器

image.png

1.4 条件分支和循环机制

程序的流程分为顺序执行、条件分支和循环三种。

1.5 函数的调用机制

image.png

函数调用中程序计数器和栈的职能

image.png

在编译高级编程语言的程序后,函数调用的处理会转换成call指令,函数结束的处理会转换成return指令。

1.6 通过地址和索引实现数组

综合使用地址和索引来决定实际地址

image.png

1.7 CPU的处理其实很简单

机器语言指令的主要类型和功能

image.png