我正在生成 mips 反汇编以模拟它。我需要有大数据来处理它,但我不想有大的程序集文件,所以我想处理一个未初始化的大数组(然后可能在我的模拟器中初始化它......)。所以我需要这个数组是全局的。并且全局变量似乎放在 .bss 部分,以便在实际访问页面时进行初始化。问题出在我的二进制文件中,数组位于 .bss 部分,但显式填充为零......如果我正确理解我在互联网上找到的内容,这不是预期的行为......有没有办法说编译器(或链接器,或加载器......我不太明白哪一个为此做了什么)没有真正在这个数组中放零?或者,我们可以在编译时有一个选项,或者一个 C 指令说我们不' 不希望这个数组被初始化为 0 吗?(我试图改变数组部分属性,但它仍然用 0 初始化)。
顺便说一句,我正在使用 objdump 生成我的反汇编文件,它通常会跳过零块,但我确实需要反汇编其他零块,所以我使用“-z”选项。
我真正不明白的是,在我所看的任何地方,都说 .bss 部分并没有真正在二进制文件中放零......