怎样理解存储器地址的分段,老是不理解为啥要分段啊?

麻烦详细点!!!
2025-04-02 17:35:04
推荐回答(1个)
回答1:

8086CPU的数据线是16位的(16位机),所以,CPU内部的寄存器包括地址寄存器都是16位的,因而对地址的操作也只能是16位,也就是说,对于8086,操作数的寻找限制在64 K范围内。但8086有20条地址线,它的直接寻址能力为1M字节。这样就产生了一个矛盾,即16位地址寄存器如何去寻址20位的存储器的物理地址。解决这个问题的办法就是8086对存储器进行分段管理,将1 M字节的内存储器,分为若干个存储区域,每个区域称为一个段,每一段都在一个连续的区域内,容量最大为64 K字节。
合成物理地址时,将段地址左移4位(扩展成20位),再加上16位偏移量。段地址是由8086中的段寄存器提供的。物理地址形成公式为:物理地址=(段寄存器)×16+16位偏移量。