assembly - [邓特曼的书第 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的两倍吗?
解决方案
2^20
16x 是和之间的差异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 位。
推荐阅读
- python - 在子图的同一 y 轴上绘制不同比例的数据
- c - sizeof 如何处理指向数组的指针的取消引用?
- python - Scipy optimize curve_fit 在拟合自定义函数时为相同参数提供不同的图
- java - Flutter:如何将原生 SDK(Spotify Android SDK)添加到应用程序?
- c# - 有没有办法在不维护 C# 中的大写/小写的情况下获取字符串是否有子字符串?
- python - 在 DST 更改发生时将字符串解析为日期
- java - 错误:执行 jar 文件时无法找到或加载主类
- c++ - 在 5d 地图 C++ 中查找项目
- grpc - 如何在 grpc-web 中使用 grpc 流式传输?
- ruby-on-rails - 生成的 RSpec 控制器测试因参数数量错误而失败(给定 2,预期为 1)