我们在上一篇文章提到,如何制作Bootsect,当然,人总是贪婪的,制作完Bootsect又想着做Setup了,Setup主要工作是打开A20,进入保护模式,等等。
一、介绍A20
这是一个历史性问题,在intel处理器8086中,“段:偏移”最大能表示的内存地址是FFFF:FFFF,即10FFEFh,可是8086只有20位寻址地址总线,只能寻址到1MB,如果试图访问1MB以上的内存地址,并不会发生错误,而是回卷,即又回到0000:0000地址,又从零开始寻址,可是到了80286时,真的可以访问到1MB以上的内存了,如果遇到同样的情况,系统不会再回卷寻址,这就造成了向上不兼容,为了保证100%兼容,IBM想出了一个办法,使用8042键盘控制器来控制第20个地址位,这就是A20地址线。
二、实践操作
直接贴代码,又恐吓读者呵呵:
;打开A20地址线 IN AL,0x92 ;进入南桥芯片 OR AL,00000010b ;打开南桥芯片的第2位(A20控制位) OUT 0x92,AL ;将修改过的配置送回南桥芯片
这里用的另一种方法,并非使用8042键盘控制器,注释里面已经说了,还有,这段代码要在Ring0的特权级下运行,如果还要往后继续操作,需要JMP指令以及进入保护模式,我们在下一篇文章再介绍进入保护模式。
如果还有问题可以联系我:Email:[email protected]
如果读者朋友也有开发操作系统的想法,可以联系我。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-07 14:03:01