8086cpu使用的存储器为什么要分段?

来源:百度知道 编辑:UC知道 时间:2024/05/21 08:56:08
8086cpu使用的存储器为什么要分段?怎么样分段?

因为在实模式下只能读取很少数量的内存.
所在到了80286以后为了使用大内存就开始了分段机制.
(你的问题有误.分段是在80286以后的.所以应该是80286以后的CPU为什么使用分段!)
分段就是将央存分为不同的"地区",每个地区有不同的属性.至显的就是ring0,ring1.......
这些"地区"是可以重合的.....

还是建议你去看一下基础书籍

8086/8088CPU的寄存器是16位,最大值FFFF即64K,而8086/8088的内存有640K,显然用一个寄存器不能寻找大于64K的地址,因此采用了的段地址加偏移地址的寻址方式CS:IP,这样最大寻址范围扩大到FFFFF,即640K,从而满足了DOS操作系统的需要。

80386以上的CPU寄存器是32位,所能表达的地址最大值是FFFFFFFF,即4G,只要内存不超过4G,用一个寄存器就能定位所有内存地址,所以在80386以上的CPU中,就取消了分段的概念。当然,80386以上的CPU,还是兼容8086/8088的指令模式的,即实模式。

寻址空间不够(8086是16位的,可访问的内存地址最大是2的16次方)要利用所有的内存空间 所以要分段。分段是底层问题,按汇编语言的定义分段就可以了。