关于实模式物理内存寻址

时间:2011-04-14 08:16:12

标签: memory assembly x86 addressing real-mode

我和我的朋友正在集思广益,讨论有关实际模式下物理内存寻址的问题,我们无法绕过它。到此为止。

在实模式下,16乘以段选择器寄存器并添加到偏移寄存器以获得20位物理地址。因此,这可能导致重叠段的可能性。

E.G。 “段选择器 - > 0040&偏移 - > 0010”=“段选择器 - > 0030& offset - > 0110”

我们的理解是,在添加到偏移之前,段选择器移位4位。因此,为了避免这种分段,为什么它们只是将段选择器移位6(将其乘以64),然后将其添加到偏移量中。我们认为这将消除内存重叠的前景。

是否与他们在此期间遇到的任何硬件限制有关,或者仅仅是设计决策。

2 个答案:

答案 0 :(得分:1)

这是由于设计限制。他们有一个20位的地址总线,最简单的做法就是让段寄存器选择段落,然后为它添加偏移量(对于超过20位地址总线的部分,它包含在记忆的底部)。

答案 1 :(得分:1)

4换档给你一个整兆的地址空间。哇!

设计是在8位系统配置为64 kB的时候完成的,对于那些有足够购买那么多内存的人来说。并且有足够大的盒子可以容纳所有这些内存板。

这是16 kB的样子:http://www.s100computers.com/Hardware%20Folder/CCS/16K%20RAM/16K%20RAM.htm

如果要安装4 MB,首先必须租用另一个房间来存储内存板!

相关问题