2

在下面的文字中,我问了两个问题,我也描述了我对这些问题的了解,以便您了解我的想法。您对以下文本的宝贵意见是必需的。

以下是第一个问题的详细信息

我们知道,如果我们有 1 兆字节的内存,那么我们需要 20 位来寻址这个内存。另一件事是每个存储单元都有一个物理地址,该地址在 1Mb 内存中为 20 位。IAPX88 中的 IP 寄存器为 16 位。现在我的观点是,我们根本无法通过 IP 寄存器访问内存,因为内存需要 20 位地址才能寻址,而 IP 寄存器是 16 位的。如果我们有一个 64k 的内存,那么 IP 寄存器可以访问这个内存,因为这个内存需要 16 位来寻址。但是如果 1mb 内存 IP 不能。如果不是为什么,请告诉我我是否正确?假设内存的物理地址是 11000000000000000101 现在我们如何通过 16 位访问这个内存位置。

以下是下一个问题的详细信息:

我的下一个问题是,假设IP寄存器指向内存位置,而段寄存器也指向一个内存位置(段的开始),内存是1MB,我们如何通过这两个16位访问一个内存位置寄存器告诉我如何访问 20 位可寻址内存位置的步骤顺序。如果你的答案是,我们取段值,我们把它左移 4 位,然后加上 IP 值得到 20 位地址,那么这就提出了另一个问题,就是地址总线(地址总线应该是 20位宽),段寄存器和 IP 寄存器的寄存器均为 16 位,现在如果地址总线为 20 位宽,则这意味着地址总线连接到这两个寄存器。

4

1 回答 1

0

答案是总是使用段寄存器,总是产生一个 20 位的地址。如果段寄存器包含零,则只能访问前 64K,但仍使用 20 位地址访问。

于 2010-03-28T10:22:41.653 回答