当前位置: 代码迷 >> 汇编语言 >> 8086为何逻辑段不能超过64k
  详细解决方案

8086为何逻辑段不能超过64k

热度:320   发布时间:2016-05-02 04:56:04.0
8086为什么逻辑段不能超过64k?
在8086中,为什么存储空间的逻辑段不能超过64k呢?
如果某段代码或者数据超过了64k该怎么办呢?

------解决方案--------------------
用来寻址的 ip 和 si/di/bp/sp 之类的都是 16 位的,所以段就有 64KB 的限制了。
超过了 64KB 就要分成多个小于 64KB 的段。代码段间采用 jmp far 或 call far 来进行跳转;数据段的访问,就要先置适当的段寄存器内容以正确指向目的数据段了。
------解决方案--------------------
8086是16位CPU,也就是说能所有寄存器都是16位,包括IP,2^16算出来就是64KB。如果超出了64KB的范围那么CPU就不能寻址到了