本文将介绍 CPU。
CPU
CPU由CPU寄存器(CPU Register)、ALU (Arithmetic and Logic UNIT)、解码单元(Decoder UNIT)和取指单元(Fetch UNIT)组成。

CPU寄存器
CPU寄存器由通用寄存器(General Register)、栈寄存器(Stack Register)、标志寄存器(Flag Register)、指令寄存器(Instruction Register)、程序计数器(Program Counter)、基址寄存器(Base Register)和索引寄存器(Index Register)等组成。
通用寄存器(General Register)
通用寄存器(General Register)是一种可用于各种用途的寄存器。
堆栈寄存器(Stack Register)
堆栈寄存器(Stack Register)是用于保存堆栈指针起始地址的寄存器。
标志寄存器(Flag Register)
标志寄存器(Flag Register)是用于保存算术逻辑单元(ALU)执行运算后,结果是正数还是负数,以及是否发生溢出或下溢等信息的寄存器。
指令寄存器(Instruction Register)
指令寄存器(Instruction Register)是在获取指令代码时用于存储指令代码的寄存器。
程序计数器(Program Counter)
程序计数器(Program Counter)是一个存储器,用于保存接下来要执行的指令代码的地址值。
基地址寄存器(Base Register)
基地址寄存器(Base Register)是用于存储要访问的内存区域起始地址的寄存器。
索引寄存器(Index Register)
索引寄存器(Index Register)是一种用于存储相对于基址寄存器所指定的内存区域的相对地址的寄存器。
ALU (Arithmetic and Logic UNIT)
ALU由加法器、逻辑运算器等运算电路组成,是执行基本四则运算(加法、减法、乘法、除法)以及逻辑运算(如OR(逻辑或)、AND(逻辑与)、NOR(异或)等)的单元。
解码单元(Decoder UNIT)
解码器单元是负责从内存中读取指令代码并进行解码,从而控制CPU寄存器、算术逻辑单元(ALU)和内存的单元。
和取指单元(Fetch UNIT)
取指单元是负责从程序计数器中保存的地址中读取指令代码并将其保存(Fetch)到指令寄存器的单元。
CPU的执行周期
CPU的执行周期通过重复执行“指令获取(Fetch)”、“指令解码(Decode)”和“指令执行(Execute)”三个步骤来完成。

指令获取(Fetch)
取指操作会从程序计数器中保存的指令代码的内存地址读取指令代码,并将读取的指令代码保存到指令寄存器中。程序计数器会将下一个指令代码地址加一。
指令解码(Decode)
解码器负责解析存储在指令寄存器中的指令代码,计算指令代码所指向的数据的执行地址,并将该执行地址处的数据保存到通用寄存器中。
指令执行(Execute)
指令的执行是指执行指令代码。例如,当指令代码为计算指令时,会将解码过程中保存的通用寄存器的值在算术逻辑单元(ALU)中进行运算,并将结果保存到通用寄存器中。