为什么段的大小不能超过64K 数学
网友回答
【答案】 嗯,这个问题问的好,相信有很多人,对这点不为什么实模式下每个段不能超过64K的大小呢.其实如果从最底层去理解就很好理解了.Intel的CPU给上层的程序员提供了两种方式的内存寻址办法:一个是实模式寻址,另一个是保护模式寻址.
实模式下,寻址采用这样的方式:
段基地址:偏移地址
物理地址=段基地址*16+偏移地址
在当时设计CPU的时候,Intel将所有的寄存器都设计为16位,所以根据上述物理地址公式可以看出,当一个段基地址确定下来之后,就只有偏移决定了可寻址的范围,所以一个段的大小被限定在了16bit地址空间里,即2^16=64K
总结一句话:最根本的说,一个段的长度由CPU的寻址方式和寄存器的长度决定.
总线为20位 但是段寄存器为16位的
逻辑地址的形式为,
段地址:偏移地址
16位的偏移地址最大可表示64K