CPU
CPU可分为精简指令集CPU(如移动端的ARM系列)和复杂指令集CPU(如Intel core和AMD系列)。一个CPU可拥有多个核心
32位CPU和64位CPU
32位和64位指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为32bit和64bit
32位cpu通用寄存器共有8个:EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI,寄存器依次编号为0号,1号,2号,3号...7号。它们都是在16位寄存器上扩展而来,E即表示扩展;而16位寄存器又扩展自8位寄存器
这8个寄存器都可以作为普通的数据寄存器使用
但有的有特殊的用途:AX为累加器,CX为计数器,BX,BP为基址寄存器,SI、DI为变址寄存器,BP还可以是基指针,SP为堆栈指针。
相比32位的CPU来说,64位CPU的变化主要在以下2方面
- 增加了8个通用寄存器R8-R15,共有16个通用寄存器
- 通用寄存器的数据宽度为64位
如图所示
64-bit registers
理解32位/64位指令集
正是由于32位CPU和64位CPU在寄存器数量、长度以及种类上存在显著的差异,这两种CPU操作寄存器的指令相互间并不通用。32位CPU对应的指令集称为32位指令集,64位CPU对应的指令集称为64位指令集。这里的32位/64位指令集的32和64并不是指指令的长度是32bit/64bit,而是指它们分别可以操作32位/64位CPU的寄存器
网友评论