程序是由数据和指令组成的
Cpu解释和运行程序,里面有数百万个乃至数亿个晶体管
Cpu中有控制器,运算器,寄存器,时钟
这里说一下时钟信号:clock puzzle 也叫主频2GHz大约就是cpu每秒运行20亿次,换句话说,这个频率越高,cpu运行速度越快
简单说一下作用:
寄存器:用来暂存指令,数据等处理对象,根据种类不同,一个cpu内部大概会有20-100个寄存器。
控制器:负责把内存上的指令与数据读入寄存器,并且根据指令的执行结果来控制计算机,平常一些输入、输出都是控制的内容
运算器:负责运算从内存中读入寄存器的数据
寄存器与运算器是一种依托的关系,寄存器的数据需要运算时依赖运算器的
时钟:负责发出cpu开始的计时信号,依据时钟信号来指示数据的运行快慢
Cpu说的简单一点就是寄存器的集合体,程序是把寄存器作为对象来描述的。
寄存器的种类我们通常通过名字来进行区分,比如eax,ebp
不同类型的cpu,他们寄存器数量,种类和存储范围都是不一样的。
根据功能我们来划分一下寄存器
下面说一下寄存器的主要种类:
Cpu就是具有各种功能寄存器的集合体
上面基址寄存器,变址寄存器,通用寄存器都不止一个。上面提到的寄存器,其他的一般只有一个。
下面说一下程序计数器:
看一张图,程序启动之后的内存内容模型:
下面说一下条件分支与循环,主要是用了jump指令
说一下两个术语:
溢出(overflow):运算的结果超出了寄存器的长度范围
奇偶校对(parity check):检查运算结果的值是偶数还是奇数
说一下数据运算之后,标志寄存器的数据存放状态,假如是32位的标志寄存器,第一个字节位,二个字节位,三个字节位为1的情况下,分别是正数 0 负数
简单说一下,程序的比较指令,就是在cpu内部做减法运算
下面来说一下函数调用机制:
函数的调用处理也就是通过把程序计数器的值设定成函数的存储地址来实现。
函数的调用需要再完成函数内部处理之后,处理流程在返回到函数的调用点
这里就不得不说一个call指令与return指令,函数调用的使用的call指令,不是jump指令,在将函数入口地址设定到程序计数器之前,call指令会吧调用函数后要执行的指令地址存储在名字为栈的主存里面。在通过函数的出口来执行return命令。Return命令就是把保存到栈中的地址设定到程序计数器上面。