文档详情

存储器读写实验说明转载.doc

发布:2017-03-29约8.72千字共7页下载文档
文本预览下载声明
存储器读写实验说明-转载 BBS 水木清华站 -- 文章阅读 [讨论区: DOS] [上一篇] [下一篇] [同主题上篇] [同主题下篇] [转寄] [转贴] [删除文章] [修改文章] [本讨论区] [回文章] [回信给作者] [同主题阅读] [快速返回] -------------------------------------------------------------------------------- 发信人: bathing (背书包的土人), 信区: DOS 标 题: Re: 在dos下bc31如何通过基地址访问pci卡物理内存? 发信站: BBS 水木清华站 (Tue Jan 7 16:21:36 2003), 站内 给你篇文章,我试过dos下的对512兆物理内存的读写,没有问题 然后获得pci配置空间也没有问题,就是对配置寄存器写不行 你把下面文章的代码改改就可以用了 DOS实方式下直接访问4GB内存 DOS实方式下直接访问4GB内存 陈家祺 摘 要 本文分析了80486CPU的寻址机制,提出了在实方式下直接访 问4GB内存的策略和C程序设计方法。 关键词 DOS程序 扩展内存 程序设计 Scheme of the Direct Access 4GB Memory in DOS Real Mode Chen Jiaqi ABSTRACT This paper makes an analysis of the principle about the access operation of 80486CPU, a approaches are posed for access 4GB memory and C Programming. KEY WORDS DOS program; XMS; Programming; 0 引 言 在高档PC微机系统中,如80486CPU微机系统,应用软件的开发可以基于DOS系统的实方式,也可以基于Windows和OS/2系统的保护方式。如何在DOS系统的实方式下开发具有访问扩展内存的应用程序,这是广大软件开发者关心的问题。其主要原因是:DOS系统是在PC机中应用最广泛的操作系统,经过广大用户长年的应用和面向实际的软件开发,其接口特性和编程方法被广大软件开发者所熟悉和掌握,并积累了丰富的应用程序资源、一系列功能强大的开发工具和一支巨大的DOS软件开发队伍。然而,开发基于DOS系统的实方式应用程序存在一定的局限性,主要是不能有效地利用高档微机的内存资源,如扩展内存的访问。尤其在开发实时性很强的大数据量的应用程序中,高效使用扩展内存是极为重要的。 目前常用的访问扩展内存方法有:(1)采用“INT 15H”或HIMEM.SYS的功能调用。(2)采用虚拟磁盘。前者只能实现数据块在常规内存与扩展内存之间移动,这样,不但还要占用一定的常规内存空间,而且数据块的移动还需占用程序运行时间,使程序的运行效率降低。后者可以以文件的形式将数据存储在扩展内存中,采用文件的访问方式进行数据操作。显然,这二种方法只能间接访问扩展内存,不能直接访问扩展内存。最大的缺点是数据的操作效率低,难以满足实时性要求。 本文将从80486CPU(以下简称CPU)的寻址机制研究入手,讨论在实方式下直接访问4GB内存的方法和C程序设计方法。 1 基本原理 1.1 物理地址形成的统一性 无论CPU在实方式下或保护方式下,其物理地址的形成都将使用段描述符高速缓冲寄存器。其差别是:在实方式下,每当向段寄存器赋予新的内容(段地址)时,段描述符高速缓冲寄存器的基地址值相应发生改变,其值为16×SEG,这就线性基地址;CPU最终形成的物理地址为基地址值加偏移量。段描述符高速缓冲寄存器的界限值和属性值始终不变。当CPU复位后,CPU的工作模式为实方式,段描述符高速缓冲寄存器的界限值自动设置为FFFFH。因此,CPU能够访问内存的空间为0~10FFEFH(FFFFH×16+FFFFH),每个段的大小为64KB。 在保护方式下,每当向段寄存器赋予新的内容SEL(选择字)时,段描述符高速缓冲寄存器的内容将由SEL对应的段描述符更新;段描述符高速缓冲寄存器的基地址值、界限值和属性值依据段描述符的设置而发生改变。段的基地址可设置在4GB内存的任意
显示全部
相似文档