8086微处理器中的内存分割

先决条件—— 分段 分段 是计算机的主存在逻辑上被划分为不同段的过程,每个段都有自己的基址。它基本上用于提高计算机系统的执行速度,以便处理器能够轻松快速地从内存中获取和执行数据。

null

需要细分—— 总线接口单元(BIU)包含四个16位专用寄存器(如下所述),称为段寄存器。

  • 代码段寄存器(CS): 用于在存储可执行程序的内存代码段中寻址内存位置。
  • 数据段寄存器(DS): 指向存储数据的内存的数据段。
  • 额外段寄存器: 也指内存中的一段,它是内存中的另一个数据段。
  • 堆栈段寄存器(SS): 用于寻址内存的堆栈段。堆栈段是用于存储堆栈数据的内存段。

8086中的地址行数为20,8086 BIU将发送20位地址,以便访问1MB内存位置之一。四段寄存器实际上包含四个64 KB内存段的起始地址的上16位,每个内存段8086在该时刻使用。段是内存的逻辑单元,最长可达64KB。每个段由连续的内存单元组成。它是一个独立的、可单独寻址的单元。起始地址总是在变化。它不会被修复。

请注意,8086在任何给定时间都不会占用整个1MB内存。然而,它只适用于整个1MB内存中的四个64KB段。

下面是在8086的1M字节内存空间中定位四个64KB段的一种方法。

图片[1]-8086微处理器中的内存分割-yiteyi-C++库

细分类型——

  1. 重叠段- 一个段从一个特定的地址开始,其最大大小可达64KB。但是,如果另一个段与第一个段的64KB位置一起开始,那么这两个段被称为 重叠段 .
  2. 非重叠段- 一个段从一个特定的地址开始,其最大大小可达64KB。但是,如果另一段在第一段的64KB位置之前开始,那么这两段称为 非重叠段 .

分割规则 分段过程遵循以下规则:

  • 段的起始地址应能被16平均除。
  • 段的最小大小可以是16字节,最大大小可以是64 kB。

    图片[2]-8086微处理器中的内存分割-yiteyi-C++库

    细分的优势 细分的主要优势如下:

    • 它提供了强大的内存管理机制。
    • 数据相关或堆栈相关的操作可以在不同的段中执行。
    • 与代码相关的操作可以在单独的代码段中完成。
    • 它允许进程轻松共享数据。
    • 它允许扩展处理器的寻址能力,即分段允许使用16位寄存器来提供1兆字节的寻址能力。如果没有分段,它将需要20位寄存器。
    • 通过为每个区域分配多个段,可以将代码数据或堆栈段的内存大小提高到64 KB以上。
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享