作者Qoo2 (我女友很像猪木!)
看板Programming
标题[问题] 请教有关记忆体的几个问题
时间Sat May 12 15:46:46 2007
请教各位高手
1:我研究了 PE档 格式,但是始终弄不懂"为什麽"他要那麽作??
意思是:我觉得大部分文件都在讲 格式 的剖析
是告诉我"what" 但我比较想知道"why"
不知哪里有详细的原因说明
比如 我想知道它在load 程式时, 记忆体转换 的详细运作流程.
2.当我在 C 里写printf("%d", &p)
请问印出来的是 线性位址?? 还是实体位址??
同样的 当用softice等 工具时 它在每行程式开头 印出来的
应该是 线性位址吗?
3 . pe里 有所谓 RVA :relative virtual address.
然後 loader会将他转换 ,把每一个section转换後的结果填入 各自
section header里面 对应项中的 VirtualAddress那一项.
接下来呢??
我的意思是intel手册中 若我们使用保护模式
应该转换位址的流程是 VirtualAddress->线性位址->实体位址
所以loader做完这个工作後,应该还没结束吧??
它应该还要帮程式设置相对应的 global(local) descriptor table
及其对应的项目 , 甚至是 page table吧??
因为我观念不很清楚, 不知道有人能提供正确的流程吗??
或者详细的参考文件更好
谢谢!!
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.128.103.179