首页
社区
课程
招聘
[求助]我还是小白. 想问下, 为什么call子程序时, 这个子程序地址不会变?
发表于: 2009-9-4 09:57 3201

[求助]我还是小白. 想问下, 为什么call子程序时, 这个子程序地址不会变?

2009-9-4 09:57
3201
比如汇编代码中call 05C572BE, 不论程序什么时候截入, 这个子程序名都不会变, 但如果是内存地址的话, 每次运行程序, 都会变化? 这是为什么啊? 谢谢

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 214
活跃值: (140)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
系统是给每个程序都有个4G的运行空间,是不是解决这个问题的?
2009-9-4 12:57
0
雪    币: 69
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
因为每次程序装入内存后如果是EXE的话他的代码都是从内存中0x400000这个位置开始的.所以你的函数地址每次都在一个地方.楼主可以看看PE文件格式
2009-9-5 11:23
0
雪    币: 377
活跃值: (10)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
函数地址 可以认为是全局变量 地址是程序编译好 就已经固定的 不会改变了 当然如果这个可执行文件 加载的基地址变化的话 地址就会改变了 但相对加载基地址的偏移是不会改变的
2009-9-5 13:59
0
游客
登录 | 注册 方可回帖
返回
//