- [游客] 我是新手,虽然看不懂,但还是顶下! 01/30 22:11
- [liaojiededepan] 感动我曾经也天天进自习式和图书馆曾经感到那么的孤独不过现在看了你的文章我感到有一大帮人站在我身边很幸 06/13 07:43
- [liaojiededepan] 高手啊~!学习了 06/13 07:15
- [游客] 感动!!!!!!!我将永远记住你 尊敬的CXN 03/12 11:10
- [游客] 惟有奋斗 03/11 22:45
- [mouse] 每个人的成就都不是靠天上掉下来的o(∩_∩)o... 03/11 18:33
- [游客] 顶就一个字,我再顶一次!!!! 03/11 16:49
- [游客] 惟有奋斗 03/11 10:54
- [taotling] 继续奋斗吧,我们需要的不只是跟那人坐在一起喝咖啡。 03/10 22:42
- [游客] 作为一个农民的儿子,我感到骄傲!以为我们的一切都是实实在在属于我们自己的! 03/10 22:00
- [maya] 在我的第一次作业中,关于8086有16根地址线,需传送512次数据的问题上,CXN及wednesda 01/02 00:22
[2007-11-06 13:50] 关于“程序加载到内存时的位置真的不确定吗”的实验
---------------------------------------点击图片放大---------------------------------------
在论坛讨论的一个问题程序加载到内存时的位置真的不确定吗?
帖子如下:http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=free&kind=1020&qkSg=2&qID=5984&readSg=1
我的观点是还是要看当时内存占用情况.加载同一个程序再退出再加载地址一样是因为系统中的内存占用情况一样,加载的程序并没有驻留内存,内存完全释放了.所以再加载和第一次加载是一样的.如果加载的程序驻留内存了占用了一定的内存空间那么再加载地址就不一样了.
比如DOS下的某些病毒会常驻内存,在加载病毒前和加载病毒后,加载同一个程序的地址就是不一样的.
DOS下的病毒?呵呵很难找了,找个容易点的,在Turbo c 2.0中有个帮助程序THELP.COM.这个程序的作用是驻留内存,当按小键盘的数字键5的时候弹出TC的帮助.这个程序常驻内存退出后也要占用内存空间.我们来试验一下,在运行THELP前加载一个程序地址是13FB退出,运行THELP,再加载同一个程序发现地址变化了,为什么?这是因为THELP占用了一段内存空间再加载程序只能从剩余的内存空间中分配了.所以地址变化了.
简单实验有不对之处请多多指正.
在论坛讨论的一个问题程序加载到内存时的位置真的不确定吗?
帖子如下:http://www.asmedu.net/bbs/pasteinfo.jsp?part=1&level=free&kind=1020&qkSg=2&qID=5984&readSg=1
我的观点是还是要看当时内存占用情况.加载同一个程序再退出再加载地址一样是因为系统中的内存占用情况一样,加载的程序并没有驻留内存,内存完全释放了.所以再加载和第一次加载是一样的.如果加载的程序驻留内存了占用了一定的内存空间那么再加载地址就不一样了.
比如DOS下的某些病毒会常驻内存,在加载病毒前和加载病毒后,加载同一个程序的地址就是不一样的.
DOS下的病毒?呵呵很难找了,找个容易点的,在Turbo c 2.0中有个帮助程序THELP.COM.这个程序的作用是驻留内存,当按小键盘的数字键5的时候弹出TC的帮助.这个程序常驻内存退出后也要占用内存空间.我们来试验一下,在运行THELP前加载一个程序地址是13FB退出,运行THELP,再加载同一个程序发现地址变化了,为什么?这是因为THELP占用了一段内存空间再加载程序只能从剩余的内存空间中分配了.所以地址变化了.
简单实验有不对之处请多多指正.
评论次数(4) |
浏览次数(2193) |
类型(技术文章) |
收藏此文 |
[ 游客 发表于 2007-11-06 14:31 ]
;Windows和DOS下通用的代码自定位
基本上是Virus通用代码
call @CallMe
@CallMe:
pop ax
[ Wednesday 发表于 2007-11-06 17:23 ]
nothing impossible
[ dreamhk 发表于 2007-11-07 11:47 ]
很好,谢谢你的实验
[ liaojiededepan 发表于 2008-06-13 07:15 ]
高手啊~!学习了