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

一、CPU的概念及作用
1、概念:CPU是英文Central Processing Unit(中央处理器)的缩写,相当于计算机的大脑。(CPU是用来表示计算机内部元件功能的术语。)
2、作用:对于程序员来说CPU是程序员用来弄清楚负责保存指令和数据的寄存器的机制。
二、CPU的内部构成
1、CPU的构成部分: CPU和内存是由许多晶体管组成的电子部件,通常称为IC。从功能上划分,CPU的内部由寄存器、控制器、运算器和时钟四个部分构成,各部分之间由电流信号相互连通。

2、CPU各部分的作用:
(1)寄存器可用来暂存指令、数据等处理对象,可已将其看作内存的一种。
(2)控制器负责把内存上的指令、数据等读入寄存器,并根据指令的执行结果来控制整个计算机。
(3)运算器负责运算从内存读入寄存器的数据。
(4)时钟负责发出CPU开始计时的时钟信号。(有些计算机的时钟位于CPU的外部。)
三、CPU与寄存器
1、关系:CPU是寄存器的集合体,而程序员了解寄存器是因为程序时把寄存器作为对象来描述的。

2、寄存器的种类划分:
不同类型的CPU,其内部寄存器的数量、种类以及寄存器存储的数值范围都是不同的。不过,根据功能的不同,我们可以将寄存器大致划分为八类。

由此可以看出,寄存器的存储内容既可以是指令也可以是数据。其中,数据分为“用于运算的数值”和“表示内存地址的数值”两种。数据种类不同,存储该数值的寄存器也不同。CPU中每个寄存器的功能都是不同的。
四、CPU的程序流程和指令执行与程序计数器
1、程序流程和程序计数器:CPU的控制器就会参照程序计数器的数值,从内存中读取命令并执行。也就是说,程序计数器决定着程序的流程。
示例:CPU执行0100地址

2、执行指令划分:程序的流程分为顺序执行、条件分支和循环三种。顺序执行是指按照地址内容的顺序执行指令。条件分支是指根据条件执行任意地址的指令。循环是指重复执行同一地址的指令。顺序执行的情况比较简单,每执行一个指令程序计数器的值就自动加1。条件分支和循环中使用的跳转指令,会参照当前执行的运算结果来判断是否跳转。
示例:执行条件分支的程序实例

五、函数的调用机制
1、概念:函数调用处理也是通过把程序计数器的值设定成函数的存储地址来实现的。
2、编程语言与函数:
很多高级编程语言都采用类似于y=f(x)这样的数学函数的语法来记述编写处理。我们知道,该数学函数的意思是将x这个值通过f处理后得到数值y。如果套用函数的语法,x就是参数,y就是返回值,执行函数的功能就是函数调用。
3、程序调用函数示例(C语言程序)

4、函数调用中程序计数器和栈的职能
(1)栈:栈(stack)本来是“干草等堆积如山”的意思。在程序领域中,通常使用该词来表示不断地存储各种数据的内存区域。函数调用后之所以能正确地返回调用前的地址,就是栈的功劳。
(2)示例:

六、CPU的处理
1、语言与CPU处理
(1)语言划分:机器语言和汇编语言
汇编语言:
①把汇编语言转化成机器语言的程序称为汇编器(assembler)。有时汇编语言也称为汇编。详情可参阅第10章。
②机器语言是指CPU能直接解释和执行的语言。
③高级编程语言是指能够使用类似于人类语言(主要是英语)的语法来记述的编程语言的总称。BASIC、C、C++、Java、Pascal、FORTRAN、COBOL等语言都是高级编程语言。使用高级编程语言编写的程序,经过编译转换成机器语言后才能运行。与高级编程语言相对,机器语言和汇编语言称为低级编程语言。
机器语言:

posted @ 2024-02-18 13:28  加克  阅读(5)  评论(0编辑  收藏  举报