论文天下|会计论文|管理论文|计算机论文|医药学论文|经济学论文|法学论文|社会学论文|文学论文|教育论文|理科论文|工科论文|艺术论文|哲学论文|文化论文|外语论文|格式论文
论文天下
计算机应用论文  计算机理论论文  计算机网络论文  电子商务论文  软件工程论文  操作系统论文  通信技术论文   
在DOS实模式下直接存取4GB内存

   作为软件开发人员,大多数对于保护模式都感到神秘和不易理解。本人在开发32位微内核抢占式多线程操作系统过程中,深入了解到PU的地址机理,在这里将分析PU的工作原理,解开保护模式的神秘面纱,读者将会发现保护模式其实与实模式一样简单和易于控制。在此基础上用四五十行语言程序做到进出保护模式和在实模式之下直接访问整个4GB内存空间。
虽然有许多书籍对保护模式作解释,但没有一本能简单明了地解释清楚,冗长烦杂的术语让人看着想打瞌睡,甚至还有许多用汇编写的(可能根本不能运行的)保护模式试验程序,事实上用语言本身就可以做保护模式的进出工作。
我们可能知道PU上电后从R中的BIS开始运行,而Intel文档却说80x86UP上电总是从最高内存下16字节开始执行,那么BIS是处在内存的最顶端64K(FFFF0000H)还是1之下的64K(F0000H)处呢?事实上在这两个地方都同时出现(可用后面存取4GB内存的程序验证)。
为什么?为了弄清楚以上问题,首先要了解PU是如何处理物理地址的?真的是在实模式下用段寄存器左移4位与偏移量相加,在保护模式下用段描述符中的基地址加偏移量而两者是毫无关联的吗?答案是两者其实是一样的。当Intel把80286推出时其地址空间变成了24位,从8086的20位到24位,十分自然地要加大段寄存器才行,实际上它们都被加大了,只是由于保护的原因加大的部分没有被程序看见,到了80386之后地址又从24位加大到32位(80386SX是24位)。整个段寄存器如下图所示:
@@12A08400.GIF;图1@@
在8086中PU只有“看得见部分”,从而也直接参与了地址形成运算,但在80286之后,在“看不见部分”中已经包含了地址值,“看得见部分”就退化为只是一个标号再也不用参与地址形成运算了。地址的形成总是从“不可看见部分”取出基址值与偏移相加形成地址。也就是说在实模式下当一个段寄存器被装入一个值时,“看不见部分”的界限被设成FFFFH,基址部分才是要装入值左移4位,属性部分设成16位0特权级。这个过程与保护模式时装入一个段存器是同理的,只是保护模式的“不可见部分”是从描述表中取值,而实模式是一套固定的过程。
对于PU在形成地址时,是没有实模式与保护模式之分的,它只管用基址(“不可见部分”)去加上偏移量。实模式与保护模式的差别实际上只是保护处理部件是否工作得更精确而已,比如不允许代码段的写入。实模式下的段寄存装入有固定的形成办法从而也就不需要保护模式的“描述符”了,因此保持了与8086/8088的兼容性。而“描述符”也只是为了装入段寄存器的“不可见部分”而设的。
从上面的“整个段寄存器”可见PU的地址形成与“看得见部分”的当前值毫无关系,这也解释了为什么在刚进入保护模式时后面的代码依然被正确地运行而这时代码段寄存器S的值却还是进入保护模式前的实模式值,或者从保护模式回到实模式时代码段S被改变之前程序是正常地工作,而不会“突变”到S左移4位的地址上去,比如在保护模式时S是08H的选择器,到了实模式时S还是08H但地址不会突然变成80H加上偏段量中去。因为地址的形成不理会段寄存器“看得见部分”的当前值,这一个值只是在被装入时对PU有用。
地址的形成与PU的工作模式无关,也就是说实模式与0特权级保护模式不分页时是一模一样的。明白了这一机理,在实模式下一样可以处理通常被认为只有在保护模式才能做的事,比如访问整个机器的内存。可以不必理会保护模式下的众多术语,或者更易于理解,如选择器就是“看得见部分”,描述符是为了装入“不可见部分”而设的。
作为验证PU的这种机理,这里写了一个实模式下访问4GB内存的程序。有一些书籍也介绍有同样功能的汇编程序,但它们都错误地认为是利用80386芯片的设计疏漏。实际上Intel本身就在使用这种办法,使得PU上电时能从FFFFFFF0H处开始第一条指令,这种技术在286之后的每一台机器每一次冷启动时都使用,只是我们不知道罢了。PU上电也整个代码段寄存器是这样的:

未完...点击下方链接下载完整文档

在DOS实模式下直接存取4GB内存

作为软件开发人员,大多数对于保护模式都感到神秘和不易理解。本人在开发32位微内核抢占式多线程操作系统过程中,深入了解到PU的地址机理,在这里将分析PU的工作原理,解开保护模式的神秘面纱,读者将会发现保护模式其实与实模式一样简单和易于控制。在此基
  • 上一篇:Turbo C位图和BMP位图格式分极及应用
  • 下一篇:在TVGA上实现全屏幕动画
  • 试析计算机通信网络安全及防护对
    数字移动多媒体案例分析
    论3G技术打造“高起点、高质量、
    物联网对计算机通信网络的影响
    小议第三代移动通信及发展趋势预
    关于通信工程设计项目组织结构评
    计算机通信与网络课程中网络资源
    windows nt环境下fddi网卡驱动程
    海拉尔通信段ZXA10综合接入网常
    信息时代计算机通信技术的应用
    基于GPRS的无线智能家居系统方案
    《通信原理》的系统教学法
    关于低压电力线载波通信技术的研
    局域网中的通信协议
    浅论光纤通信技术的特点和发展趋
    论中国法律渊源模式之弊端
    网管支撑系统对传统运维模式的
    DOS界面下通用图形编辑软件的
    SaaS模式在中小企业ERP系统中
    SaaS模式在中小企业ERP系统中
    计算机通信与网络课程教学模式
    浅论移动通信企业全面预算管理
    改革普通高校计算机通信类课程
    高职计算机通信专业“零距离”
    移动互联网时代下通信运营商组
    | 设为首页 | 加入收藏 | 联系我们 | 论文发表

    Copyright 2006-2020 © 论文天下 All rights reserved 本站所有内容均由SPider自动索引,如有侵权请联系QQ:2486851删除