1.对程序员来说CPU是什么 benben Posted on Feb 2 2023 《程序是怎样跑起来的》 ##1.1 CPU的内部结构解析 **控制器**:负责把内存上的指令和数据读入寄存器,并根据执行的结构控制计算机。 **运算器**:运算从内存读入寄存器的数据。 **寄存器**:暂存指令和数据的地方,可看做是内存的一种。 **时钟**:发出CPU开始计时的时钟信号,时钟信号频率越高,CPU运行越快。 ##1.2 CPU是寄存器的集合体 程序是把寄存器作为对象描述的。 **程序计数器**:决定程序流程;存储下一条指令所在内存的地址。 **标志寄存器**:存储运算处理后的CPU的状态。 **基址寄存器**:存储数据内存的起始地址。 **变址寄存器**:存储基址寄存器的相对地址。 **累加寄存器**:存储执行运算的数据和运算后的数据。 **指令寄存器**:存储指令。CPU内部使用,程序员无法通过程序对该寄存器进行读写操作。 **栈寄存器**:存储栈区域的起始地址。 **通用寄存器**:存储任意数据。 ##1.3 决定程序流程的程序计数器 ##1.4条件分支和循环机制 程序的流程分为顺序执行、条件执行和循环三种。 **顺序执行**:按照地址内容的顺序执行指令。 **条件分支**:根据条件执行任意地址的指令。 **循环**:重复执行同一地址的指令。 ##1.5 函数的调用机制 * 机器语言中的call指令 * 函数调用使用的是call指令,而不是跳转指令。 * 在将函数入口地址设定到程序计数器之前,call指令会把调用函数后要执行的指令地址存储在名为栈的主存内。 * 机器语言中的return指令 * 函数处理完成后,再通过函数的出口来执行return指令。 * return指令的功能是把保存在栈中的地址设定要程序计数器中。 * 跳转指令和call&return指令的区别 * 跳转指令不涉及栈。 * call和return涉及栈。 ##1.6 通过地址和索引实现数组 通过**基址寄存器**和**变址寄存器**,我们可以对主内存上特定的内存区域进行划分,从而实现类似于数据的操作。  ###1.7 CPU的处理其实很简单 机器语言指令的主要类型和功能  ①外围设备指的是连接到计算机的键盘、鼠标、显示器、设备装置、打印机等。 赠人玫瑰,手留余香 赏 Wechat Pay Alipay 2.数据是用二进制表示的 前言