NPE*_*NPE 12
最初的问题与x86内存分段有关.
将使用segment:offset两个segment和offset16位整数访问内存.实际地址计算为segment*16+offset.在20位地址总线上,这自然会被截断为最低的20位.
当在大于20位的地址总线上运行相同的代码时,这种截断可能会出现问题,因为代替循环,程序可以访问超过第一兆字节的内存.虽然本身不是问题,但这可能是向后兼容性问题.
为了解决这个问题,他们引入了一种强制A20地址线为零的方法,从而强制进行环绕.
你的问题是:"为什么只是A20?怎么样A21- A31?"
请注意,使用16位segment:offset方案可以解决的最高位置是0xffff * 16 + 0xffff = 0x10ffef.这适合21位.因此,线A21- A31总是为零,只A20需要控制.
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |