欢迎来到天天文库
浏览记录
ID:7229012
大小:49.50 KB
页数:7页
时间:2018-02-08
《存储器读写实验说明-转载》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、存储器读写实验说明-转载BBS水木清华站--文章阅读[讨论区:DOS][上一篇][下一篇][同主题上篇][同主题下篇][转寄][转贴][删除文章][修改文章][本讨论区][回文章][回信给作者][同主题阅读][快速返回]--------------------------------------------------------------------------------发信人:bathing(背书包的土人),信区:DOS标题:Re:在dos下bc31如何通过基地址访问pci卡物理内存?发信站:BBS水木清华站(TueJan716:21:362003),站内给你篇文章,我试
2、过dos下的对512兆物理内存的读写,没有问题然后获得pci配置空间也没有问题,就是对配置寄存器写不行你把下面文章的代码改改就可以用了DOS实方式下直接访问4GB内存 DOS实方式下直接访问4GB内存陈家祺摘要本文分析了80486CPU的寻址机制,提出了在实方式下直接访问4GB内存的策略和C程序设计方法。关键词DOS程序扩展内存程序设计SchemeoftheDirectAccess4GBMemoryinDOSRealModeChenJiaqiABSTRACTThispapermakesananalysisoftheprincipleabouttheaccessoperationo
3、f80486CPU,aapproachesareposedforaccess4GBmemoryandCProgramming.KEYWORDSDOSprogram;XMS;Programming;0引言在高档PC微机系统中,如80486CPU微机系统,应用软件的开发可以基于DOS系统的实方式,也可以基于Windows和OS/2系统的保护方式。如何在DOS系统的实方式下开发具有访问扩展内存的应用程序,这是广大软件开发者关心的问题。其主要原因是:DOS系统是在PC机中应用最广泛的操作系统,经过广大用户长年的应用和面向实际的软件开发,其接口特性和编程方法被广大软件开发者所熟悉和掌握,并
4、积累了丰富的应用程序资源、一系列功能强大的开发工具和一支巨大的DOS软件开发队伍。然而,开发基于DOS系统的实方式应用程序存在一定的局限性,主要是不能有效地利用高档微机的内存资源,如扩展内存的访问。尤其在开发实时性很强的大数据量的应用程序中,高效使用扩展内存是极为重要的。目前常用的访问扩展内存方法有:(1)采用“INT15H”或HIMEM.SYS的功能调用。(2)采用虚拟磁盘。前者只能实现数据块在常规内存与扩展内存之间移动,这样,不但还要占用一定的常规内存空间,而且数据块的移动还需占用程序运行时间,使程序的运行效率降低。后者可以以文件的形式将数据存储在扩展内存中,采用文件的访问方
5、式进行数据操作。显然,这二种方法只能间接访问扩展内存,不能直接访问扩展内存。最大的缺点是数据的操作效率低,难以满足实时性要求。本文将从80486CPU(以下简称CPU)的寻址机制研究入手,讨论在实方式下直接访问4GB内存的方法和C程序设计方法。1基本原理1.1物理地址形成的统一性无论CPU在实方式下或保护方式下,其物理地址的形成都将使用段描述符高速缓冲寄存器。其差别是:在实方式下,每当向段寄存器赋予新的内容(段地址)时,段描述符高速缓冲寄存器的基地址值相应发生改变,其值为16×SEG,这就线性基地址;CPU最终形成的物理地址为基地址值加偏移量。段描述符高速缓冲寄存器的界限值和属性
6、值始终不变。当CPU复位后,CPU的工作模式为实方式,段描述符高速缓冲寄存器的界限值自动设置为FFFFH。因此,CPU能够访问内存的空间为0~10FFEFH(FFFFH×16+FFFFH),每个段的大小为64KB。在保护方式下,每当向段寄存器赋予新的内容SEL(选择字)时,段描述符高速缓冲寄存器的内容将由SEL对应的段描述符更新;段描述符高速缓冲寄存器的基地址值、界限值和属性值依据段描述符的设置而发生改变。段的基地址可设置在4GB内存的任意地址处,段的最大界限值可达FFFFFFFFH(4GB-1)。在不分页的情况下,CPU最终形成的物理地址同样是基地址值加偏移量。所以,CPU能够
7、整个访问4GB内存空。显然,对于CPU在形成物理地址时,在实方式下与在0特权级不分页的保护方式下是相同的。只是段的基地址和段的大小设置范围不同。工作方式确定是由控制寄存器CR0的最低位PE位决定的,若PE为0,则工作在实方式;若PE为1,则工作在保护方式。在通过PE位的改变时,就进行了工作方式切换。这种切换只影响段描述符高速缓冲寄存器的基地址值运算方式,不影响段描述符高速缓冲寄存器的段界限值。1.2直接访问4GB内存当CPU复位后,CPU处于实方式下,尽管在实方式下可执行诸如“M
此文档下载收益归作者所有