【64k】为什么段的大小不能超过64K
答案:2 悬赏:0 手机版
解决时间 2021-02-16 00:15
- 提问者网友:雨不眠的下
- 2021-02-15 13:05
【64k】为什么段的大小不能超过64K
最佳答案
- 五星知识达人网友:梦中风几里
- 2021-02-15 13:14
【答案】 嗯,这个问题问的好,相信有很多人,对这点不为什么实模式下每个段不能超过64K的大小呢.其实如果从最底层去理解就很好理解了.Intel的CPU给上层的程序员提供了两种方式的内存寻址办法:一个是实模式寻址,另一个是保护模式寻址.
实模式下,寻址采用这样的方式:
段基地址:偏移地址
物理地址=段基地址*16+偏移地址
在当时设计CPU的时候,Intel将所有的寄存器都设计为16位,所以根据上述物理地址公式可以看出,当一个段基地址确定下来之后,就只有偏移决定了可寻址的范围,所以一个段的大小被限定在了16bit地址空间里,即2^16=64K
总结一句话:最根本的说,一个段的长度由CPU的寻址方式和寄存器的长度决定.
总线为20位 但是段寄存器为16位的
逻辑地址的形式为,
段地址:偏移地址
16位的偏移地址最大可表示64K
实模式下,寻址采用这样的方式:
段基地址:偏移地址
物理地址=段基地址*16+偏移地址
在当时设计CPU的时候,Intel将所有的寄存器都设计为16位,所以根据上述物理地址公式可以看出,当一个段基地址确定下来之后,就只有偏移决定了可寻址的范围,所以一个段的大小被限定在了16bit地址空间里,即2^16=64K
总结一句话:最根本的说,一个段的长度由CPU的寻址方式和寄存器的长度决定.
总线为20位 但是段寄存器为16位的
逻辑地址的形式为,
段地址:偏移地址
16位的偏移地址最大可表示64K
全部回答
- 1楼网友:狂恋
- 2021-02-15 14:44
和我的回答一样,看来我也对了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯