1.通用寄存器(8个)
l        EAXEBXECXEDX这四个寄存器,主要就是用来暂时存放计算过程中所用的操作数、结果或其它信息。
l        ESP为堆栈指针寄存,它和堆栈段寄存器SS共同决定了当前的栈指针,每当执行push,pull操作时,或者因为某些原因(如中断),CPU自动将数据入栈时,就会使用该指针来找到堆栈栈顶(或栈底)的位置,然后执行压栈、出栈的操作。系统管理软件,如操作系统会根据其分配的栈空间地址来设定这两个寄存器的值。
l        EBP称为基址指针寄存器,它和 ESP都可以与堆栈段寄存器 SS联用来确定堆栈中的某一存储单元的地址, ESP用来指示段顶的偏移地址,而 EBP可作为堆栈区中的一个基地址以便访问堆栈中的信息。
l        ESI(源变址寄存器)和 EDI(目的变址寄存器)一般与数据段寄存器 DS联用,用来确定数据段中某一存储单元的地址。这两个变址寄存器有自动增量和自动减量的功能,可以很方便地用于变址。在串处理指令中, ESIEDI作为隐含的源变址和目的变址寄存器时, ESIDS联用, EDI和附加段 ES联用,分别达到在数据段和附加段中寻址的目的。
2.专用寄存器
l        EIP指令指针寄存器,它用来存放代码段中的偏移地址。在程序运行的过程中,它始终指向下一条指令的首地址。它与段寄存器 CS联用确定下一条指令的物理地址。当这一地址送到存储器后,控制器可以取得下一条要执行的指令,而控制器一旦取得这条指令就马上修改 EIP的内容,使它始终指向下一条指令的首地址。那些跳转指令,就是通过修改 EIP的值来达到相应的目的的。
l        FLAGS标志寄存器,又称 PSW(program status word),即程序状态寄存器。这一个是存放条件标志码、控制标志和系统标志的寄存器。
3.段寄存器
l        一共六个,分别是 CS代码段, DS数据段, ES附加段, SS堆栈段, FS以及 GS这两个还是附加段。
EFLAGS寄存器中的IF位表示是否允许中断,为1允许,否则不允许。
TR寄存器
用来指向当前任务的TSS段
IDTR寄存器
用来指向当前IDT(中断表述符表或者说是中断向量表),因为在保护模式下,IDT的起始地址可以在任何位置,而不仅限于地址0。
GDT和LDT
前者是全局描述符表,位置由GDTR寄存器确定,后者是局部描述符表,位置由LDTR寄存器确定,具体使用哪一个,取决于段选择码中的TI位。