【发布时间】:2018-06-05 06:02:07
【问题描述】:
8086微处理器中分段的优点是什么? 没有得到细分的重要性。是为了管理更多内存吗?
【问题讨论】:
标签: microprocessors memory-segmentation
8086微处理器中分段的优点是什么? 没有得到细分的重要性。是为了管理更多内存吗?
【问题讨论】:
标签: microprocessors memory-segmentation
回答
4 种类型的段
这些段中的每一个都由存储在相应段地址中的地址寻址。
【讨论】:
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 位指令集的成本等);并且保护和内存管理之类的东西在之后被重新安装(然后在被放弃以支持分页之前几乎没有被软件使用)。
【讨论】: