![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-15 19:39 |
共 47,813 主题排行 / 349,903 发帖 / 今日 1 篇 / 48,258 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 问个内存的问题 |
| 可打印版本 1,288 / 11 |
| 第1楼 Rinrin | 发表于 2009-04-06 00:39 |
| 初级用户 发帖 10 积分 30 | |
问个内存的问题![]() 如图所示,UMBPCI开启的内存分为两块: CC00-DFFF E400-EFFF 现在想让CC00段的程序全部移动至E400段,使空闲块最大,请问如何处理? 在COMMAND加载后,再enable CC00段是否可行? |
|
| 第2楼 wl00560 | 发表于 2009-04-07 03:57 |
| 银牌会员 发帖 709 积分 1,384 | |
|
lh可以加参数,让程序到某个区块的……
|
|
| 第3楼 Rinrin | 发表于 2009-04-07 09:22 |
| 初级用户 发帖 10 积分 30 | |
|
像SYSTEM, FILES, STACKS这些,不能用LH指定吧?
COMMAND也可以指定加载位置吗? |
|
| 第4楼 Climbing | 发表于 2009-04-07 10:51 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
此Rinrin是彼Rinrin吗?
你的问题我也不懂。 |
|
| 第5楼 netbenton | 发表于 2009-04-07 12:23 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
command.com 虽然不能指定,但是它会自动放到最合理的地方吧
|
|
| 第6楼 wl00560 | 发表于 2009-04-07 13:09 |
| 银牌会员 发帖 709 积分 1,384 | |
|
原来你移这些啊,那我就没办法了……
|
|
| 第7楼 DOSforever | 发表于 2009-04-11 09:15 |
| 金牌会员 发帖 2,239 积分 4,639 | |
Originally posted by Rinrin at 2009-4-7 09:22: 这些系统数据可能无法指定加载到什么位置。 如果用 QEMM386 的话,可以用 LOADHI.SYS 加载 COMMAND.COM 到指定的 UMB 区域。 |
|
| 第8楼 Rinrin | 发表于 2009-04-19 05:31 |
| 初级用户 发帖 10 积分 30 | |
|
使用/L的区域参数似乎会稍微浪费一点空间
使用之前: 使用/L:2之后: 损失64字节 而且,这些TSR程序,似乎一般会留出几百个字节的空间,不知是做什么用的? 楼上说的QEMM,我先试试 [ Last edited by Rinrin on 2009-4-19 at 06:02 ] |
|
| 第9楼 DOSforever | 发表于 2009-04-20 10:58 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
哈哈!好啊!损失64个字节也计较啊!哈哈哈哈!有我当年B(yte)B(yte)计较的精神。冲你这精神我就把我多年的经验拿出来共享下,大家讨论下吧。
许多 TSR 驻留内存后都会留出几十到几百甚至十几、几十K不等的间隔,那是因为一般 TSR 在加载时所占用的内存要比驻留后要大,因为加载时它还需要一定的环境空间,加载后就不需要了,至于为什么有的有,有的没有,具体我就不知道了,不知是不是和程序的编写有关。 还有一件怪事,有时候我没有改动任何内存配置,也没有改动硬件,但有时候启动后的原来有间隔的会没有,原来没间隔的又会有?下次启动又会正常?而且我还特意 reset 而不是 reboot 。有时候你多启动几次又会和平常一样了。这就是我说的,计算机中常有许多说不清道不明的事情。不过,遇上这样的事情概率很少,总之,计算机中的事情就是“不稳定”的。 从你这情况来看,加不加 /L:2 参数具体指明哪个区域没什么关系,因为 lh 不加参数时总是把 TSR 加载到最大的 UMB ,你这情况最大的 UMB 就是 2 ,所以加不加结果一样。 |
|
| 第10楼 netbenton | 发表于 2009-04-20 12:54 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
而且,这些TSR程序,似乎一般会留出几百个字节的空间,不知是做什么用的? 程序驻留是以段为单位的16字节,特别是以前的dos版本,在读取文件时以扇区为单位的最小512字节。 还有dos的exe程序在编写时都要指定对齐方式,和连接方式,有:字节,双字,段(16)字节,512,4k,16k,64k,等,合理的分段对齐,可以提高程序的效率。 所看到的,驻留程序后面有几十,或几百个字节,不是因为该程序,而是后的程序造成的。 偶也是大概了解一点,再多的就不知道了。 |
|
| 第11楼 Rinrin | 发表于 2009-04-23 09:06 |
| 初级用户 发帖 10 积分 30 | |
|
to Climbing:是我
楼上的解答有点道理,但这个似乎不属于这种情况 我用debug看了这些空闲块,貌似存放的是环境变量 而且doslfn是个com程序,不是exe程序,不应该存在对齐的问题 ![]() ![]() [ Last edited by Rinrin on 2009-4-23 at 09:10 ] |
|
| 第12楼 netbenton | 发表于 2009-04-23 11:37 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
dos好像是会给com程序配一个环境段的,而驻留程序本身一般不会自行移动自身代码(病毒除外),dos系统对已经驻留的程序,也是不会去移动它的。由于空闲的空间太小,是无法再分配给其它的程序的。通常dos驻留程序都会有中断向量指向,要想把这个小空间合并成一个较大的空间,要考虑的问题太多了。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |