一、段
在我们说段地址的时候,容易给人带来一种内存划分为一个一个的段的想法。然而,这个想法是不正确的,内存并没有分段,段的划分来自于CPU,由于8086CPU使用“基础地址(段地址 x 16) + 偏移地址 = 物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。由此我们可以认为:
地址10000H~100FFH的内存单元组成了一个段,段的基础地址为:10000H,段地址为1000H。如下图所示:
根据以上,我们得出两个推论:
- 段地址 x 16必然是16的倍数,所以一个段的起始地址一定是16的倍数
- 偏移地址为16位,16位地址的寻址能力位64KB,所以一个段的长度最大为64KB
二、段寄存器
8086CPU有4个段寄存器:CS、DS、SS、ES
8086CPU再访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。