首页 > 解决方案 > [邓特曼的书第 3 版]。16 位 8086 的内存容量如何是 8080 的 16 倍?

问题描述

Duntemann 说8086 可以寻址 16 倍于 8080 的内存,并继续将其详细说明为16 * 64K = 1MB。所以我假设一次 16 位(16 位处理器)* 64K,因为 16 个地址线(2^16)。但是,按照这种计算逻辑,8080(8 位处理器)是否也有 16 条地址线能够寻址 8 * 64K = 0.5MB?

那么8086不应该能够解决8080的两倍吗?

请注意突出显示的句子

标签: assemblyx86x86-16memory-segmentation

解决方案


2^2016x 是和之间的差异2^16

8080 有 16 位地址空间,这意味着它可以访问 2^16 (65,536) 个不同的地址。因此,它可以访问的内存量为 65,536 *(每个地址的内存量)。在我们的例子中,每个地址的内存量为 1 字节,因此可寻址内存量为 65,536 * 1 字节 = 64KB。

8086 有 20 位地址空间,这意味着它可以访问 2^20 个不同的地址 (1MB)

当然 1MB/64KB 是 16。

请注意,处理器的“位数”并不总是反映其地址总线的大小。它经常这样做,但不是在这些情况下。

8080 是一个 8 位处理器,但它的地址总线是 16 位宽。类似地,8086 是一个 16 位处理器,但它的地址总线是 20 位。


推荐阅读