2

我在理解以下文本时遇到问题,

8088支持1Mbyte的外部存储器。从软件的角度来看,该存储空间被组织为存储在地址范围内的连续地址中的单个数据00000字节FFFFF

现在我不明白作者是如何从 1 MB 转换为 FFFFF 的。谁能帮帮我?

谢谢。

4

3 回答 3

10

1 兆字节是2^20. 这意味着您需要 20 位来表示它。该范围00000-FFFFF包含所有可能的 20 位值。

于 2012-04-16T12:15:26.030 回答
2

在描述8086的页面中有很好的解释(8088 具有相同的指令集架构,但引脚略有不同)。

基本上,段寄存器给出了一个(16 位)基地址乘以 16,然后添加了一个 16 位偏移量。

并且0xfffff是 2 20 -1,即 1048575

于 2012-04-16T12:13:41.963 回答
0

请区分容量和地址。容量计数从 1 开始,但在内存中寻址从 0 开始(地址 0 计入 1)。

一个比喻。如果我们有 10 个容量,并且我们从 0 开始寻址,那么它将是从 0 到 9。

所以寻址的诀窍是 Last Address = Capacity - 1。

对于容量 1MB(十进制),十六进制 = 10.0000h 对于寻址,最后一个地址是 10.0000 - 1 = F FFFF 因此,1MB 容量的寻址是从 0 到 F FFFF。(记住地址0,算1)。

于 2019-08-21T03:20:08.227 回答