原理是是这样的
8086cup拥有20根地址总线,所以cup可以访问的地址范围就从 00000 -- fffff 总共有1M空间
但是寄存器的大小为16位,其能寻址的范围为0000--ffff(64k大小的空间),由此可见单单依靠一个寄存器是无法访问到1m空间
8086给出的解决办法就是 使用两个寄存器来表示地址.一个段寄存器,和一个通用寄存器
具体的解决办法是:cpu中有个地址运算单元,它就是将段寄存器的值*16(16为10进制,二进制的话为4位),这样生成一个20位大小的数据,然后在此基础上加上一个16位的偏移,组成最后的20位物理地址
楼主有什么不明白的,回帖 |