8086微处理器分段的优点

advantages of segmentation in 8086 microprocessor

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

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

分段是一种允许 16 位 CPU 支持更大地址 space 的方法。本质上,将两个 16 位寄存器组合在一起,使得 addresses/pointers 可以更大。不幸的是(可能是为了避免 "unnecessary at the time" 在 CPU 的总线上有更多地址线的成本),而不是使用两个 16 位寄存器作为 32 位地址,英特尔做了一个 "address = segment * 16 + offset" 以 20 位地址结尾,给 8086 一个 1 MiB 地址 space.

后来(1980 年代初期)有人推动了 "protected objects",其中 "objects"(在面向对象编程中)可以通过硬件获得 enforced/checked 的访问控制和限制,并且大约在同一时间,有 "virtual memory" 个想法浮出水面。这些想法导致了命运多舛的 iAPX 432 CPU;但也导致了将保护(属性和限制)与 8086 已有的段相关联的想法,这导致 "protected mode" 随 80286 引入(并在 80386 中扩展)。

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

回答

  • 内存大小分为不同大小的段。
  • 段就是内存中的一个区域。
  • 这样划分内存的过程称为分段。
  • 数据---->字节----->具体地址。
  • 8086有20条地址总线。
  • 2^20 字节 = 1Mb
  • 4 种细分

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

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