一个困惑很久的问题,有关内存地址映射的

wenhaoy 2003-12-06 11:51:38
经常听说bios被映射到内存的0fffffh,访问此地址就等于访问bios,现存被映射到0b8000h,给此地纸写数据直接写入显存。那么对286来说,假如我买了1mb的内存条插上去,岂不是有很多内存单元没用过,真实内存的0fffffh,0b8000h都存的是什么东西?如果我要用真实内存中的这个地址怎么办呢?能取消这种映射吗?
...全文
148 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenhaoy 2003-12-09
  • 打赏
  • 举报
回复
谢谢
cchuocp 2003-12-07
  • 打赏
  • 举报
回复
PC机上BIOS安装在“物理内存”的0xE0000到0xFFFFF。“DOS下”显卡内存映射到“物理内存”0xA0000到0xBFFFF。这些地址的原有的RAM(内存条)被屏蔽,正常情况下读写不到。Windows下设备驱动已不再使用BIOS,显卡内存也被映射到没有安装内存的地址上。
BIOS映射可以通过具体BIOS特定的方法取消,很多BIOS有一个Shadow功能,就是将0xA0000-0xFFFFF的部分地址的数据先读到同一地址的内存上,再取消映射。不过为了安全起见,现在的很多BIOS,只允许对部分区域进行shadow。
显卡内存的映射就简单多了,VGA显卡标准就定义有映射方法,进行相应编程即可。
不过在DOS下进行这类操作很危险,BISO破坏后系统回死机。显卡内存错误映射就不能显示了。
W32API 2003-12-07
  • 打赏
  • 举报
回复
去看下面这个帖子
http://search.csdn.net/expert/topic/17/1703/2002/9/30/1066438.htm
虽然对于你这个问题,该贴说的东西超过太多,但是我认为可以对你有帮助

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧