对于C语言中的全局变量,例如
int aglobal = 5;
5何时被加载器传送到aglobal中,它如何知道将5放入aglobal中。
同样的情况也出现在函数内的静态声明中。例如:
int afunc() { static int astatic = 8; return astatic; }
对于C语言中的全局变量,例如
int aglobal = 5;
5何时被加载器传送到aglobal中,它如何知道将5放入aglobal中。
同样的情况也出现在函数内的静态声明中。例如:
int afunc() { static int astatic = 8; return astatic; }
.data
.globl aglobal
aglobal: .long 5
.text
main:
mov eax, aglobal
mov eax, 0
,并带有一个重定位R_386_32 aglobal+0
,因为目标文件无法确定数据段在内存中的确切位置。mov eax, 0x804a010
现在已知数据段中4个字节的实际地址,因此可以直接指定