我对A20门有疑问。我看过一篇文章,其中提到该机制是为了解决新的CPU采用32位地址总线而不是旧的20位总线时出现的“环绕”问题。
在我看来,正确的处理方法应该是关闭A20到A31位上的所有位,而不仅仅是A20位。
为什么只关闭A20位就足以解决这个问题呢?
在我看来,正确的处理方法应该是关闭A20到A31位上的所有位,而不仅仅是A20位。
为什么只关闭A20位就足以解决这个问题呢?
segment:offset
访问内存,其中segment
和offset
都是16位整数。实际地址计算为segment * 16 + offset
。在20位地址总线上,这自然会被截断为最低的20位。A20
地址线为零,从而强制环绕。A20
?A21
-A31
呢?”段:偏移
方案可以寻址的最高位置是0xffff * 16 + 0xffff = 0x10ffef
。这适用于21位。因此,线路A21
-A31
始终为零,只需要控制A20
。