段寄存器为16位寄存器,用于与微处理器中的其它寄存器联合生成存储器地址。
对于同一微处理器而言,段寄存器的功能在实模式下和保护模式下是不同的。
代码寄存器CS(Code Segment)
CS用于保存微处理器使用的代码,CS定义代码段的起始地址。
实模式下,CS定义一个64K字节存储器段的起点;保护模式下它选择一个描述代码段起始地址、长度及其他一些必要的属性信息(可读、可写、可被执行等)。
数据段寄存器DS(Data Segment)
DS是包含程序所使用的大部分数据的存储区。DS用于定义数据段的起始地址。
对于保护模式下80386及更高型号的微处理器,数据段长度限制为4GB
附加段寄存器ES(Extra Segment)
ES是用于为某些串操作指令存放目的操作数而附加的一个数据段。ES用于定义附加段的起始地址。
堆栈段寄存器SS(Stack Segment)
堆栈是存储器的一个特殊存储区,用于存放程序运行的一些数据和地址信息。
SS定义堆栈段的首地址。由堆栈段寄存器SS与堆栈指针寄存器SP/ESP确定堆栈段内的存储地址。另外BP/EBP也可用于寻址堆栈段内的数据。
段寄存器FS和GS
仅对80386及更高微处理器有效,以便程序访问两个附加的存储器段。