实模式下的影子寄存器

先说实模式,这是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 的回答

posted @ 2020-01-04 14:59  相印  阅读(271)  评论(0)    收藏  举报