没有保护模式的CPU保护

时间:2017-07-05 15:03:32

标签: assembly operating-system cpu-architecture

我正在学习模式位的使用,以及某些CPU(如Intel 8086)仅在实模式下运行这一事实。在许多消息来源中,我被告知如下:

  • 英特尔8086没有保护模式
  • 它只能使用前1 MiB的内存

我的问题是,为什么他们指定只有1 MiB的内存可以寻址?这是否意味着除了第一个MiB之外还有无法使用(但可能是可读的?)内存? 如何使用超出第一个MiB的内存?这是CPU为O.S.等进程提供某种保护方式的方式吗?或者CPU真的提供零保护以防意外覆盖?

1 个答案:

答案 0 :(得分:5)

8086/8088没有超过1M的可寻址内存。这是因为它只有20个地址线,2 ^ 20是1,048,576。因此地址范围介于0(十六进制00000)和1,048,575(十六进制FFFFF)之间。正如您所正确指出的那样,这与“保护模式”无关,因为8086/8088处理器上不存在这种情况。

较旧的处理器可用内存较少:8080有16条地址线,总共2 ^ 16或65,536字节的内存。

这类似于说“如果只有三位(十进制)数字,则无法表达超过999的数字。”