段寄存器,IP寄存器和存储器寻址问题!

时间:2010-03-28 10:14:21

标签: assembly computer-architecture

在下面的文字中,我问了两个问题,我还描述了我对这些问题的了解,以便你能理解我的想法。 您需要提供有关以下文字的宝贵意见。

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

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

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

我的下一个问题是,假设IP寄存器指向内存位置,并且段寄存器也指向内存位置(段的开始),内存为1MB,我们如何通过这两个16位访问内存位置寄存器告诉我如何访问20位可寻址存储器位置的步骤顺序。 如果您的答案是,我们取段值并将其向左移4位然后将IP值添加到其中以获得20位地址,然后这引发另一个问题即地址总线(地址总线应为20)位宽),段寄存器和IP寄存器的寄存器各为16位,如果地址总线为20位宽,则表示地址总线连接到这两个寄存器。如果不是这种情况,那么我想到的另一件事是这两个寄存器都产生一个20位地址,并且会有一个寄存器可以存储20位,这个寄存器也可以连接到这些寄存器和地址总线

1 个答案:

答案 0 :(得分:0)

答案是始终使用段寄存器,始终生成20位地址。如果段寄存器包含零,则只能访问第一个64K,但仍使用20位地址访问它。