先决条件–细分
分段是将计算机的主存储器在逻辑上划分为不同的段,并且每个段都有其自己的基址的过程。它基本上用于提高计算机系统的执行速度,从而使处理器能够轻松,快速地从内存中获取并执行数据。
细分需求–
总线接口单元(BIU)包含四个称为段寄存器的16位专用寄存器(如下所述)。
- 代码段寄存器(CS):用于寻址在存储可执行程序的存储器的代码段中的存储器位置。
- 数据段寄存器(DS):指向存储数据的内存的数据段。
- 额外段寄存器(ES):也指内存中的一个段,它是内存中的另一个数据段。
- 堆栈段寄存器(SS):用于寻址存储器的堆栈段。堆栈段是用于存储堆栈数据的那部分内存。
8086中的地址线数为20,8086 BIU将发送20bit地址,以便访问1MB内存位置之一。这四个段寄存器实际上包含四个存储段的起始地址的高16位,这四个存储段的大小为64 KB,而8086在该时刻均与之一起工作。段是内存的逻辑单元,最长可以为64 KB。每个段由连续的内存位置组成。它是一个独立的,可单独寻址的单元。起始地址将始终在变化。它不会被修复。
请注意,8086在任何给定时间都无法正常工作整个1MB内存。但是,它仅适用于整个1MB内存中的四个64KB段。
下面是在8086的1M字节存储空间内放置四个64 KB段的一种方法。
细分类型–
- 重叠段–段起始于特定地址,其最大大小可达64 KB。但是,如果另一个段与第一个段的此64 KB位置一起开始,则这两个段被称为“重叠段” 。
- 非重叠段–段始于特定地址,其最大大小可达64 KB。但是,如果另一个段在第一个段的此64 KB位置之前开始,则这两个段被称为“非重叠段” 。
细分规则细分过程遵循一些规则,如下所示:
- 段的起始地址应能被16均分。
- 段的最小大小可以为16个字节,最大可以为64 kB。
细分的优势细分的主要优势如下:
- 它提供了强大的内存管理机制。
- 数据相关或堆栈相关的操作可以在不同的段中执行。
- 与代码相关的操作可以在单独的代码段中完成。
- 它允许流程轻松共享数据。
- 它允许扩展处理器的寻址能力,即分段允许使用16位寄存器来提供1 MB的寻址能力。如果没有分段,则将需要20位寄存器。
- 通过为每个区域分配一个以上的段,可以将代码数据或堆栈段的内存大小增加到64 KB以上。