【问题标题】:advantages of segmentation in 8086 microprocessor8086微处理器中分段的优点
【发布时间】:2018-06-05 06:02:07
【问题描述】:

8086微处理器中分段的优点是什么? 没有得到细分的重要性。是为了管理更多内存吗?

【问题讨论】:

    标签: microprocessors memory-segmentation


    【解决方案1】:

    回答

    • 内存大小分为不同大小的段。
    • 段只是内存中的区域。
    • 以这种方式划分内存的过程称为分段。
    • 数据---->字节----->具体地址。
    • 8086 有 20 线地址总线。
    • 2^20 字节 = 1Mb
    • 4 种类型的段

      1. 代码段
      2. 数据段
      3. 堆栈段
      4. 额外段
    • 这些段中的每一个都由存储在相应段地址中的地址寻址。

    • 寄存器大小为 16 位。
    • 存储对应段的基地址,存储高16位。

    【讨论】:

      【解决方案2】:

      8086中使用的指令集是16位指令集。这意味着寄存器只能存储 0x0000 到 0xFFFF 范围内的值,并且指令大多只执行 16 位操作(16 位加法、16 位减法等)。如果一个寄存器包含一个地址/指针,那么它最多可以计算出 64 KiB 的地址空间(一些用于 ROM,一些用于 RAM),这对于当时的市场来说还不够。

      分段是一种允许 16 位 CPU 支持更大地址空间的方法。本质上,将两个 16 位寄存器组合在一起,以便地址/指针可以更大。不幸的是(可能是为了避免在 CPU 总线上有更多地址线的“当时不必要的”成本),而不是使用两个 16 位寄存器作为 32 位地址,英特尔做了一个“地址 = 段 * 16 + 偏移量” " 以 20 位地址结束,为 8086 提供 1 MiB 地址空间。

      后来(1980 年代初)推动了“受保护对象”的发展,其中“对象”(在面向对象编程中)可以被赋予由硬件强制/检查的访问控制和限制,大约在同一时间有“虚拟内存”的想法四处飘荡。这些想法导致了命运多舛的 iAPX 432 CPU;但也导致了将保护(属性和限制)与 8086 已有的段相关联的想法,这导致了 80286 引入的“保护模式”(并在 80386 中扩展)。

      基本上;段(优势)的最初原因是增加地址空间(没有 32 位指令集的成本等);并且保护和内存管理之类的东西在之后被重新安装(然后在被放弃以支持分页之前几乎没有被软件使用)。

      【讨论】: