实模式下的逻辑地址由段基值和偏移地址组成;而保护模式下的逻辑地址由段选择器和偏移地址组成。实际上段基值和选择器都是由段寄存器提供。在汇编语言程序中,逻辑地址可表示为
段基值(或段选择器):偏移地址
•80x86 逻辑地址的两个分量之间存在一种默认组合关系,可以不在程序中指明。
•默认组合取决于指令所需的操作类型。下表给出了不同操作类型,获得段基值(或段选择器)和偏移地址的不同来源。
在这种默认组合下,程序中不必专门指定其组合关系,但程序如用到非默认的组合关系(如使用允许替代来源),则必须用段跨越前缀加以说明。
•当CPU执行取指令的操作时,必须由代码段寄存器CS提供段基值(或段选择器),而偏移地址从指令指针IP或EIP中获得。
•如指令执行的是堆栈操作,则必须由SS提供当前段段基值(或段选择器),而堆栈指针SP或ESP给出栈顶单元的偏移地址。
•如指令执行需要存取存储器中的操作数,操作数通常存放在当前数据段中,则隐含由DS提供段基值(或段选择器);如操作数在其他当前段中,则用其他段寄存器(如CS、SS、ES)来指定操作数所在段,这时指令中必须要给出对应的段寄存器名,即段跨越前缀,而存放操作数单元的偏移地址是由CPU根据指令提供的寻址方式计算得到的。按寻址方式计算出来的偏移地址又称为有效地址EA(Effective Address)。