无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4758|回复: 10
打印 上一主题 下一主题

[求助] 请指正一下把内存map为镜像的位置和大小计算对不对

[复制链接]
跳转到指定楼层
1#
发表于 2016-10-18 21:48:20 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
学习了grub4dos-help-2015-02-09.CHM中的GRUB4DOS 内存使用简析

自己解释了一下下面的语句
map --mem (md)0x6000+800 (fd0)

这句是用的扇区数量表示法,意思是从内存的12m开始的800个扇区map成软盘fd0,800个扇区大小就是400kb
请问上面的解释对不对

如果用绝对内存地址的写法,上面的语句又该怎样写呢


下面是grub4dos-help-2015-02-09.CHM中的GRUB4DOS 内存使用简析中的部分内容
-----------------------------------------------------------------------------------------
1、绝对算法示例:

以0x60000为例,

0x60000 = 393216B (/1024) = 384KB

2、扇区数量表示法示例:

以(md)0x3000+2为例,

0x3000×0x200 = 12288×512B = 6291456B (/1024) = 6144KB (/1024) = 6M

#即从内存6MB处开始,长度为1K的区域。

以(md)0x60000为例,

0x60000 = 393216×512B = 201326592B (/1024) = 196608KB (/1024) = 192M

2#
 楼主| 发表于 2016-10-18 22:53:36 | 显示全部楼层
不知 发表于 2016-10-18 22:17
按楼主的提示,绝对算法没有设备名,那楼主的计算应该是对的。
绝对算法应该是用于write和read命令的,map ...

谢谢回复

1、上面我对map --mem (md)0x6000+800 (fd0)的解释是对的吗  (扇区数量法 有设备名md)
2、map内存一般情况就用扇区数量表示法方便一些,是不是

回复

使用道具 举报

3#
 楼主| 发表于 2016-10-18 23:39:18 | 显示全部楼层
eaglefly 发表于 2016-10-18 23:33
进来学习,我想看懂0PE的GRLDR要去那里学习下?

0PE可以问pseudo
0PE专门有一个区
http://bbs.wuyou.net/forum.php?mod=forumdisplay&fid=82
回复

使用道具 举报

4#
 楼主| 发表于 2016-10-19 10:16:35 | 显示全部楼层
不点 发表于 2016-10-19 09:37
搞电脑技术的,犯错也是经常的。说说我的理解吧。

我觉得一楼的理解是准确的。我需要补充说明的是,这里 ...

谢谢回复

原来map --mem (md)0x6000+800 (fd0)这样的命令有“源” 和 “目的地”的过程,这样理解它们就更明白一些了
grub4dos-help-2015-02-09.CHM中的GRUB4DOS 内存使用简析也讲过:
"其它16MB以内的内存最好不要随意使用,很多有特殊的用途。保守一些的话,尽量使用64M以上的内存空间做临时文件用。"

幸好,这两天学习了下dos涉及内存的分类,不然对扩展内存的概念还是云里雾里
-----------------------------------------------------------------------------------------------------------------------------------
grub4dos-help-2015-02-09.CHM中的GRUB4DOS 内存使用简析中有如下内容
map --mem=0xb000 /COOLG/IMG/TOOLS.WIM (rd)
#    将当前设备/COOLG/IMG/目录下的TOOLS.WIM文件映射到内存22M开始的位置 ,使用(rd)设备是为了加快加载速度
#    本例中使用了0xb000,转换为10进制为45056,这个值的意思是共45056个扇区,每扇区大小为512B,

以0x6000为例,把它转换成10进制后结果是24576,其实这个值就是0到0x6000的总字节数,为什么扇区数量表示法要把这个总字节数当作总扇区数再乘以512

-----------------------------------------------------------------------------------------------------------------------------------
“因此所创建的 400KB 虚拟盘,也是一个 “未经格式化” 的虚拟盘”
需要格式化它么,那么有办法格式化它么

另外问一个GRUB4DOS 之外的问题,安装xp按F6加载驱动时的软盘可以不是1.44M大小的,比如 400KB 虚拟盘,这在实际安装中也用到过它

点评

注意 map 命令通常都是使用 512 字节的扇区块作为计算单位的。不是使用单个 “字节” 作为计算单位的。 0x6000 不是指的 “字节数”,而是指的 “512 字节块的个数”。 未格式化的盘,可以用 chenall 开发的 f  详情 回复 发表于 2016-10-19 10:31
回复

使用道具 举报

5#
 楼主| 发表于 2016-10-19 10:54:05 | 显示全部楼层
不点 发表于 2016-10-19 10:31
注意 map 命令通常都是使用 512 字节的扇区块作为计算单位的。不是使用单个 “字节” 作为计算单位的。
...



昨天一下午愣是没弄明白,“ 本例中使用了0xb000,转换为10进制为45056,这个值的意思是共45056个扇区,每扇区大小为512B”
而0xb000所处扇区是88,也就是有88个扇区,怎么又说成是45056个扇区

原来在grub4dos中的0x6000 不是指的 “字节数”,而是指的 “512 字节块的个数”。定义不一样了


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-28 06:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表