标签:blog 32bit streaming com lag .com min register 情况
前言 :在网上搜了一大圈,发现少有对X86寄存器有较完善归纳的,基本上都在讨论普通目的(GPRs)寄存器,在此汇总记录一下目前得到的结论以备忘。
1. 先看一下现实情况
X86-64下gdb查看进程寄存器:
这些能看到的是CPU的普通寄存器,还有一些寄存器是这里看不到的。
2. 回顾一下历史
在X86-16时代,起初只有14个16位的普通寄存器:
通用寄存器:AX 、BX 、CX 、DX
段寄存器:CS(code segment)、 DS(data segment) 、SS(stack segment) 、ES(extra segment)
索引和指针寄存器 :(DS:)SI 、DI ,(SS:)SP 、BP ,(CS:)IP
标志寄存器 : FLAGS(CF AF SF IF ...)
除了这些寄存器,还有8个浮点寄存器(st (0)~st(7))、3个特殊寄存器(保护模式相关):GDTR(global descriper table register)、LDTR(local descriper table register)、IDTR(interrupt descripter table register)、一个任务寄存器: TR(task register)
到了X86-32时代,上述14个普通寄存器全部提升至32位,分别为E**,段寄存器增加了两个FS、GS。随着多媒体技术的发展,还催生了此时的SSE( Streaming SIMD Extentions )指令集,于是又有了MXCSR(SSE 控制寄存器)和XMM0-7(128bit,SSE浮点寄存器)寄存器。此外这个时期新增了许多特殊寄存器:CR0~CR4(控制寄存器,保护模式、分页机制)、DR0~3,6,7(调试寄存器)、TR3~TR7(80486,测试寄存器)等。
到了X86-64时代,新增了8个通用寄存器:R8-R15,其余的普通寄存器由E**(32bit)提升至R**(64bit)。
参考:
https://en.wikipedia.org/wiki/X86
http://ybin.cc/programming/x86-registers/
标签:blog 32bit streaming com lag .com min register 情况
原文地址:http://www.cnblogs.com/rec0rd/p/7678164.html