社区
汇编语言
帖子详情
在dos下访问超过1MB的内存?
Toogo
2002-08-21 12:33:53
按照书上所说
1MB内存的底限是F000:FFFF
那么干吗我还是可以访问FFFF:FFFF的内存
到底是怎样分的
...全文
131
33
打赏
收藏
在dos下访问超过1MB的内存?
按照书上所说 1MB内存的底限是F000:FFFF 那么干吗我还是可以访问FFFF:FFFF的内存 到底是怎样分的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
giantzz
2002-08-28
打赏
举报
回复
对于现在的FLASH EPROM来说,如果它是最普通的,如2M,那么它的物理内存地址是FFE00000H-FFFFFFFFH,映射到1M内的内存地址是000C0000H-000FFFFFH(C0000H-FFFFFH)系统BIOS是0F0OOOH-0FFFFFH,不是完全映射
djygrdzh
2002-08-27
打赏
举报
回复
至于映射,可以这样理解,比如你的内存有1024M也就是0-7fffffffh,你要读取一个逻辑内存地址时,CPU不管三七二十一把这个地址转换成物理地址,假设是6fffffffh,然后发给GMCH(类似于北桥),GMCH然后根据自己的寄存器的内容一看,在实际内存范围以内,那么就发往实际内存;如果超出,则不管三七二十一发给ICH(类似南桥),南桥一看,就往它的PCI设备总线那儿一送,说:谁拥有这个地址,给我发个信。然后各个设备就查自己的PCI配置空间的被指定的地址(参看http://www.csdn.net/Expert/TopicView1.asp?id=683837),然后就汇报。
这样就实现了映射。
我说的可能不是完全对,但是大致应该差不多
djygrdzh
2002-08-27
打赏
举报
回复
如果要资料的话可以到http://www.sst.com/products/49lf00xA.html上下载一个编号为49lf00xA的闪存的文档,该型号闪存用做bios芯片的比较多见。
里面会告诉你怎样对闪存进行擦除和写操作。
我看了一下基本是这样的:首先把ffbf0002等控制读写权限的内存映射的寄存器置0,然后要保证把#tbl和#WP两个信号置高。在一般主板中,前者为低,后者为高,这都被硬件固定无法改变。也就是说,我以前提到的引导区是无法擦除的,然后其他区域可以被擦除。
接下来,必须使用这个文档所定义的擦除,写和等待操作用软件的方法来进行bios除了引导区以外的区域写,其中的5555h和2aaah的基址是ffff0000,合成以后也就是0ffff5555h和0ffff2aaah,这是可写的,然后它所定义的#data0-7的pin脚对应的地址是0ffff0000h,也就是数据输入输出口。
真麻烦啊
giantzz
2002-08-25
打赏
举报
回复
哪不明的,说说说说说说说说说说
Toogo
2002-08-25
打赏
举报
回复
有些地方还是不太明白
giantzz
2002-08-24
打赏
举报
回复
你还要什么?
Toogo
2002-08-24
打赏
举报
回复
还有没有多一点资料的
xxxzzz
2002-08-22
打赏
举报
回复
to djygrdzh():
0FFFF0H+0FFFFH=10FFFFH
你是怎么算的?
giantzz
2002-08-22
打赏
举报
回复
to djygrdzh():
你这是在哪本书上学的,按你的说法,OFFFFFFFFH-0FFFF0000H这段ROM空间无法修改,请指教!还有,这段64K的空间如何映射到2M的FLASHROM上,只是映射已用的部分吗?打开地址线21是IO的92H的第1位吧?
Areslee
2002-08-22
打赏
举报
回复
现在的PC都有32根以上的地址线啊!
yeahnet6868
2002-08-22
打赏
举报
回复
根据分段动态分配内存吧,因为16根地址线,所以段地址可以达到:ffff,但是此时偏移地址只能是:000f了吧,为什么出现:ffff:ffff搞不明白阿!
metalbreeze
2002-08-22
打赏
举报
回复
那么runtime部分是从??-0fffffh
djygrdzh
2002-08-22
打赏
举报
回复
至于HMA,当20地址线被打开(好像是通过往io端口59h某个位写1)以后,
0FFFF0H+0FFFFH=10FFFFH就不被转换到=0FFFFH,而是直接访问10FFFFH。注意看一下就知道,那个1正好处于第21根地址线也就是A20,这样就可以访问100000h-10ffffh之间的HMA了。但是在A20关闭的情况下这个地址段还是被翻译为0FFFFH-00000h。
djygrdzh
2002-08-22
打赏
举报
回复
但是初始化以后bios会把自己拷贝到 000fffffh 以下部分
不是0000ffffh,笔误
djygrdzh
2002-08-22
打赏
举报
回复
bios真正的地址是0ffffffffh-0ffff0000h,这段地址被硬件映射到一块flashrom上,也就是该bios芯片。但是初始化以后bios会把自己拷贝到0000ffffh以下部分,因此在实模式下可以访问,但这只是runtime部分,初始化计算机的部分是不被拷贝的。
metalbreeze
2002-08-22
打赏
举报
回复
书上写的是0ffff0h为机器启动地址,其后为自检和rom引导程序(是不是bios镜象)
djygrdzh
2002-08-22
打赏
举报
回复
具体我不是很清楚,因为这是硬件连线决定的,但是估计原理和3-8译码器差不多。。。
xxxzzz
2002-08-22
打赏
举报
回复
说明白一些,是如何映射的?
djygrdzh
2002-08-22
打赏
举报
回复
打开地址线21确实是IO的92H的第1位
djygrdzh
2002-08-22
打赏
举报
回复
当然不是64K,是64K-16,这个大小在 BIOS研发技术剖析一书中被提到
加载更多回复(13)
纯
DOS
下
内存
的管理—实模式下
访问
4GB
内存
纯
DOS
下
内存
的管理—实模式下
访问
4GB
内存
DOS
操作系统最早设计时,PC机的硬件系统只支持1M字节的寻址空间,所以
DOS
只能管理最多1M字节的连续
内存
空间。在这1M
内存
中,又只有640K被留给应用程序使用,它们被称为常规
内存
或基本
内存
,其它384K被称为高端
内存
,是留给视频显示和BIOS等使用的。在1982年,640K
内存
对微型计算机来说显得绰绰有余,人们甚至认为,640K的
内存
可以用来干任
DOS
环境下支持的最大
内存
是多少?
DOS
6.22 can address 640 KB (not MBytes!) of conventional memory and use upto 64 MB of extended memory via DPMI and
DOS
Extender or himem.sys. (来源:https://www.zhihu.com/question/20070475) 基本
内存
占据0~640KB地址空间。 保留
内存
占据640KB~1024KB地址空间。分配给显示缓冲存储器、各适配卡上的ROM
DOS
中使用扩展
内存
与XMS操作库设计
DOS
中使用扩展
内存
与XMS操作库设计作者:彭学周(Favory.Peng)
DOS
系统常规
内存
指的是0-640K的
内存
区。在
DOS
下,一般的应用程序只能使用系统的常规
内存
,因而都要受到640KB
内存
的限制。而且由于
DOS
本身和config.sys文件中的安装的设备驱动程序和autoexec.bat文件中执行的
内存
驻留程序都要占用一些常规
内存
,所以应用程序能使用的常规
内存
是不到640K的
DOS
实方式下直接
访问
4GB
内存
十堰市湖北汽车工业学院电气工程系(442002) 陈家祺 摘 要: 分析了80486CPU 的寻址机制, 提出了在实方式下直接
访问
4GB
内存
的策略和C 程序设计方法。 关键词: DO S 程序 扩展
内存
程序设计 在高档PC 微机系统中, 如80486CPU 微机系统,应用软件的开发可以基于DO S 系统的实方式, 也可以基于W indow s 和O Sö2 系统的保护方式。
DOS
操作系统中的
内存
管理
如下图所示,
DOS
操作系统运行于实模式中,8086处理器的寻址空间只用
1MB
,系统硬件使用的
内存
安排在从A1000开始的
内存
高端,在系统低端,即00000h-00500h则是中断向量表和BIOS数据区。剩下的大约640KB的
内存
才是操作 系统和应用程序所能使用的,这就是“640KB”限制,在这640KB中,
DOS
操作系统占据了低端的一部分,剩余的才是应用程序可用的,大约有600KB。
汇编语言
21,493
社区成员
41,618
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章