寄存器简介
寄存器是cpu的组成部件之一,cpu在进行计算时,因为速度太快的原因,无法与内存(DRAM)直接进行操作。所以需要将所需的数据先从内存中提取到寄存器中,在对寄存器进行操作。
为了缓解DRAM与cpu的速度差,计算机在cpu与DRAM之间还有一个cache组件(SRAM),从内存中取出数据到寄存器中需要一个cpu指令周期,但如果预先放在cache中的话便可以直接使用,大大节约了取到数据的时间。
寄存器历史
从8086这一代cpu开始,intel进入了x86时代,由于最早出现的8086是16位的cpu,寄存器能存储的位数也为16位,例如我们熟悉的AX,BX,CX,DX寄存器。
从i386这一代cpu开始,32位处理器开始进入市场,这个时候寄存器也升至32位,除了包含先前16位所有的寄存器外,还把通用寄存器、指令寄存器和标志寄存器从16位扩充成32位,并增加了2个16位段寄存器FS和GS。
之后的64位x86-64也是对x86架构的扩展。
寄存器详细介绍
这里以32位cpu的寄存器为例
在32位cpu中有:
- 4个数据寄存器(EAX、EBX、ECX、EDX)
- 2个变址和指针寄存器(ESI、EDI)
- 2个指针寄存器(ESP、EBP)
- 6个段寄存器(ES、CS、SS、FS、GS)
- 1个指令指针寄存器(EIP)
- 1个标志寄存器(EFlags