操作系统开发之——打开A20
2024-08-22 19:46:46
我们在上一篇文章提到。怎样制作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
假设读者朋友也有开发操作系统的想法,能够联系我。
最新文章
- WCF Security(转载)
- julia的优化?
- 机械革命 USB装系统各种坑
- poj 2420,模拟退火算法,费马点
- 2017年1月8日 星期日 --出埃及记 Exodus 21:34
- ECSHOP如何解决购物车中商品自动消失问题
- twitter的snowflake算法(C#版本)
- txt文件保存问题
- 【CSS Cookbook】笔记摘要(二)
- 论文笔记--PCN:Real-Time Rotation-Invariant Face Detection with Progressive Calibration Networks
- nginx unit PHP
- ajax知识点
- 00-自测5. Shuffling Machine
- unity3D OnTriggerEnter和OnCollisionEnter的区别
- 详细解释如何通过Android自带的方式来实现图片的裁剪——原理分析+解决方案
- Hbase(七)hbase高级编程
- BZOJ1486 HNOI2009 最小圈 【01分数规划】
- angular-ui-router动态加载模块
- 搭建jfinal+maven框架
- css媒体类型