实模式下的影子寄存器

先说实模式,这是x86开机时所处的模式。仿佛cpu仍旧是80x86时代。

然后是unreal模式,其实叫做far real mode更形象,就是,仍旧是在16位模式下,但是可以访问1M以上的地址。

这个模式是通过先进入保护模式,通过修改段寄存器,把它的影子寄存器的limit修改成4G来做到的。然后回到16位模式,这样就可以访问远地址了。

x86 cpu并不使用段寄存器,它总是从影子寄存器里读数据。

而实模式下修改段寄存器,cpu只是间接的把影子寄存器里base字段修改成seg<<4。

参考:

Segment size in x86 real mode

Peter Cordes 的回答

猜你喜欢

转载自www.cnblogs.com/xiang-yin/p/12149076.html