what-is-computer-01

对程序员来说,CPU是什么?

  • 程序是什么?
  • 程序是由什么组成的?
  • 什么是机器语言?
  • 正在运行的程序存储在什么位置?
  • 什么是内存地址?
  • 计算机的构成元件中,负责程序的解释和运行的是哪个?
  1. 指示计算机每一步动作的一组指令
  2. 指令和数据
  3. CPU可以直接识别并使用的语言
  4. 内存
  5. 内存中,用来表示命令和数据存储位置的数值
  6. CPU

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

CPU的内部结构解析

CPU,由寄存器、控制器、运算器和时钟构成

寄存器,用来暂存指令、数据等处理对象,可看作为内存的一种。一个CPU内部会用20-100个寄存器;

控制器,负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机;

运算器,负责运算从内存读入寄存器的数据;

时钟,负责发出CPU开始计时的时钟信号。有些计算机的时钟位于CPU的外部。

内存,main memory

通过控制芯片等与CPU相连,主要负责存储指令和数据。内存由可读写的元素构成,每个字节(1字节=8位)都带有一个地址编号。CPU通过该地址读取内存中的指令和数据,也可写入数据。

程序的运行机制

  • 程序启动后,根据时钟信号,控制器会从内存中读取指令和数据;

  • 通过对这些指令加以解释和运行,运算器就会对数据进行运算;

  • 控制器根据该运算结果来控制(指数据输入输出的时机控制)计算机。

CPU是寄存器的集合体

eax和ebp是CPU内部的寄存器的名称。内存的存储场所通过地址编号来区分,而寄存器的种类则通过名字来区分。

机器语言级别的程序是通过寄存器来处理的。

使用高级语言编写的程序会在编译后转化成机器语言,然后再通过CPU内部的寄存器来处理。

对程序员来说,CPU是什么?

CPU是具有各种功能的寄存器的集合体。其中,程序计数器(决定着程序的流程)、累加寄存器、标志寄存器(负责存放溢出和奇偶校验的结果)、指令寄存器和栈寄存器都只有一个,其他的寄存一般有多个。

函数的调用机制

函数调用处理,通过把程序计数器的值设定成函数的存储地址来实现。

函数的调用需要在完成函数内部的处理后,处理流程再返回到函数调用点(函数调用指令的下一个地址)。

函数的调用原点和被调用函数之间的数据传递,可以通过内存或寄存器来实现。

CPU的处理其实很简单