寻址方式可概念上分为三种:
数据保存在指令中,这就是立即数寻址,数据在代码段
数据在寄存器中,通过指定寄存器号就可以了
数据在内存单元中,就需要偏移地址,偏移地址也是数据

根据偏移地址存在的位置不同又可以细分(偏移地址在指令中,偏移地址在寄存器中,偏移地址在内存中)

实模式下,内存中的数据确切的是需要段地址和偏移地址,但大多数的段地址都使用默认的寄存器。如数据段中的数据,要使用首先得把段地址送往数据段寄存器(初始化段寄存器),然后再通过偏移地址找到这个数据。

但在保护模式下,就不用段寄存器了,而是由操作系统自动初始化,而且不再存放段地址而是段选择子,直接使用偏移地址就可以访问4G的内存。其过程如下:

  1. 段寄存器存放段选择子;
  2. CPU 根据段选择子从GDT中找到对应段描述符;
  3. 从段描述符中取出段基址。
  4. 根据之前的公式,结合段基址和段内偏移,计算出物理地址,如果开启了分页机制这里得到的就是逻辑地址。