我们在上一篇文章提到。怎样制作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:2608184397@qq.com

假设读者朋友也有开发操作系统的想法,能够联系我。

最新文章

  1. WCF Security(转载)
  2. julia的优化?
  3. 机械革命 USB装系统各种坑
  4. poj 2420,模拟退火算法,费马点
  5. 2017年1月8日 星期日 --出埃及记 Exodus 21:34
  6. ECSHOP如何解决购物车中商品自动消失问题
  7. twitter的snowflake算法(C#版本)
  8. txt文件保存问题
  9. 【CSS Cookbook】笔记摘要(二)
  10. 论文笔记--PCN:Real-Time Rotation-Invariant Face Detection with Progressive Calibration Networks
  11. nginx unit PHP
  12. ajax知识点
  13. 00-自测5. Shuffling Machine
  14. unity3D OnTriggerEnter和OnCollisionEnter的区别
  15. 详细解释如何通过Android自带的方式来实现图片的裁剪——原理分析+解决方案
  16. Hbase(七)hbase高级编程
  17. BZOJ1486 HNOI2009 最小圈 【01分数规划】
  18. angular-ui-router动态加载模块
  19. 搭建jfinal+maven框架
  20. css媒体类型

热门文章

  1. NHibernate学习笔记(3)-实体反射到数据库
  2. 2105. [NOIP2015] 信息传递
  3. 2017-12-04HTML table布局
  4. parsley之验证属性设置
  5. centos7服务器安装fail2ban配合Firewalld防护墙防止SSH爆破与防护网站CC攻击
  6. 【转载】linux下的zookeeper启动
  7. maven deploy时报错
  8. js 的静态获取和动态获取
  9. 微信小程序中使用ECharts 异步加载数据 实现图表
  10. Re0:DP学习之路 Proud Merchants HDU - 3466