这本书的第一章主要讲解的是CPU。那对于程序员来说CPU到底是什么呢?这一章便给出了答案。
cpu是什么?
CPU是Central Processing Unit(中央处理器)的缩写,也就是相当于计算机的大脑。它由寄存器、控制器、运算器、时钟构成,各部分之间由电流信号相互连通。CPU是寄存器的集合体,我们也需要深入了解寄存器,因为程序是将寄存器作为对象来描述的。CPU能够直接识别和执行的语言只有机器语言,所以需要使用汇编语言编写代码再将其转换为机器语言。通过阅读汇编语言编写的代码,能够了解转化成机器语言的程序的运行情况。
一个CPU中有很多不同种类的寄存器,其中程序计数器、累加寄存器、标志寄存器、标志寄存器、指令寄存器、栈寄存器只有一个,其他的寄存器一般有多个。它们之间相互连通。
机器语言的主要类型和功能
跳转指令程序的流程分为三种——顺序执行、条件分支、循环。
- 决定程序流程的是程序计数器。CPU每执行一个指令,程序计数器的值就会加1。
- 累加寄存器会执行算数运算、逻辑运算、比较运算、移位运算。
- CPU在执行运算时,标志寄存器的值会根据运算结果自动设定。是否执行跳转指令由CPU参考标志寄存器的数字后判断
call指令和return指令 函数的调用机制和上述条件分支、循环的机制不同。它一般通call指令和return指令完成。
- call指令会把调用函数后要执行的指令地址存储在名为栈的主存内。函数处理完毕后,再通过函数的出口来执行return命令。return命令的功能便是吧保存在栈中的地址设定到程序计数器中。
除上述描述的寄存器功能外,还有许多寄存器有它特定的功能。例如基址寄存器和变址寄存器,CPU会通过基址寄存器+变址寄存器的值解释为实际查看的内存地址。这些值和我们平常生活中的十进制不太相同,而是用到了二进制,将会在下一章进行讲解。