我只是写了一个简单的c程序,然后生成了一个可重定位的目标文件,以便对目标文件的不同方面有更多的了解,这是源代码:
int main(void)
{
static int a = 1 ;
int b = 2 ;
b = a + b ;
return 0;
}
字符串
问题是为什么在数据段中包含汇编指令:
0000000000000000 <a.0>:
0: 01 00 add %eax,(%rax)
型
我希望数据部分包含初始化数据的地址
我在wsl 2 ubuntu上运行gcc,命令如下:gcc -o file. c file.o
1条答案
按热度按时间bn31dyow1#
你在展示它是以
01 00
开头的。字符串
这正是我们所期望的开始。(接下来的两个字节将是
00 00
。)当然,如果你把它解释为代码,它将是add %eax,(%rax)
。但它不是代码。它是一个32位有符号整数。