由内存1的讲解我们知道,内存仅仅是一个存放指令和数据的地方,要完成计算功能需要将其读取到CPU内部。
然而CPU内部又包含很多个小零件,它是一个复杂的计算机部件。
上图中的运算单元相当于CPU的大脑功能,负责各种运算工作,而且每种运算工作都有对应的电路支持,速度很快。
寄存器(Register)是CPU内部一个非常小非常快速的存储部件,但是它的容量是有限的。我们经常说到的多少位的CPU其实指的就是寄存器的位数,对于32位的CPU,每个寄存器一般能存储32位(4个字节,一个字节是8位)的数据,对于64位的CPU每个寄存器一般能存储64位(8个字节)的数据。为了实现程序中复杂的功能,现在的CPU都内置了几十个甚至上百个寄存器,(嵌入式的功能单一,寄存器数量较少)。
寄存器在程序的执行过程中至关重要,不可或缺,它们可以用来完成数学运算、控制循环次数、控制程序的执行流程、标记CPU运行状态等,CPU就是用它来记录程序的运行状态,然后根据他的值再决定下一步的操作。例如,EIP(Extern Instruction Pointer )寄存器的值是下一条指令的地址,CPU执行完当前指令后,会根据 EIP 的值找到下一条指令,改变 EIP 的值,就会改变程序的执行流程;CR3 寄存器保存着当前进程页目录的物理地址ÿ