能力值:
( LV2,RANK:10 )
|
-
-
2 楼
希望大家帮忙看看啊!
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
例如:
基址:0x00400000
节虚拟偏移 节文件偏移 节偏移
0 - 0 = 0
text 1000 - 400 = c00
rdata 2000 - c00 = 1400
data 3000 - 1000 = 2000
虚拟偏移=虚拟地址-基址
文件偏移=虚拟地址-基址-节偏移
节偏移=虚拟偏移-文件偏移
虚拟偏移=节偏移+文件偏移
文件偏移400以前的文件偏移等于虚拟偏移
将0x00401010虚拟地址传换成文件偏移:
文件偏移=虚拟地址-基址-节偏移
0x00401010-0x00400000-0xC00(0x00401010-0x00400000大于1000小于2000属于text段)=410
将0xCCC文件偏移转换成虚拟地址
虚拟地址=文件偏移+节偏移+基址
0xCCC+0x1400(0xCCC大于C00小于1000属于rdata段)+0x00400000=004020CC
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
请问:文件偏移 = 虚拟地址-基址-(虚拟偏移-文件偏移)
= 虚拟地址- 基址 - 虚拟偏移 +文件偏移
前三项岂不是为0?
由于是新学,水平较低,希望不要见怪。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
文件偏移 = 虚拟地址-基址-(节虚拟偏移-节文件偏移)
涉及块对齐 和 文件对齐
第一个段是text 他是400开始的 他的虚拟偏移是1000
但399他的虚拟偏移不是999 而是399
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
谢谢你,我懂了,主要在偏移与地址搞混了。非常感谢!
|
|
|