能力值:
( LV6,RANK:80 )
|
-
-
2 楼
很抱歉楼主我没搞清楚你的问题。
PE中已初始化全局量和静态量存放在.data段。
未初始化变量存在.bss段。
程序载入时整个PE文件载入内存。
对全局量的访问就是mov Reg,[addr]
对局部变量的初始化编译后就是sub esp,0xXX ,mov [ebp-XX],value。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
[QUOTE=hrpirip;1123395] 很抱歉楼主我没搞清楚你的问题。
PE中已初始化全局量和静态量存放在.data段。
未初始化变量存在.bss段。
程序载入时整个PE文件载入内存。
对全局量的访问就是mov Reg,[addr]
对局部变量的初始化编译后就是sub esp,0xXX ,mov [ebp-XX],valu...[/QUOTE]
对全局量的访问就是mov Reg,[addr] 这个addr地址是怎么来的?是.data载入内存中的地址?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
那个ADDR是编译器生成的地址,是RVA,LOAD时加上基址。
我想LZ其实是不太懂加载PE文件运行的原理而已,去搜一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
这个地址当然是编译器生成的,这个地址是不是在.data段中然后运行的时候载入内存,以后使用的时候就调用这个地址?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
.bss段对应汇编是伪指令(声明变量占用多少字节内存),在PE文件中不占地方,载入内存时占用内存。
局部变量和已初始化静态、全局变量LZ理解应该没问题。
|
|
|