Linux组装; bss段内存初始化为0?

时间:2010-11-28 17:11:33

标签: linux assembly nasm

在测试中我运行了程序的bss部分中的内存,在我写任何内容之前一直初始化为零。这是巧合,还是系统在清理这些内存页面之前将它们交给我?我在Ubuntu上使用nasm汇编程序(如果这可能有所不同)。

2 个答案:

答案 0 :(得分:3)

你的应用程序的可执行文件(ELF)有一个BSS部分的大小信息,当它启动时,内核为BSS部分分配一块内存,并将其清理为0.这由ABI定义(应用程序二进制接口),因此您不必担心不同机器上的不同。

答案 1 :(得分:0)

是BSS初始化为零。