asm - 什么是本地公共区域以及 .lcomm 和 .comm 之间的区别?

Mic*_*erg 7 assembly x86-64

我仍然在汇编语言初学者,我想了解什么做的指令.lcomm,并.comm在事实上意味着什么呢?

我在谷歌搜索了一下,发现它.lcomm代表local common,但我真的不明白那是什么。有人可以澄清一下吗?

Ols*_*ist 3

当 Unix 进程运行时,它有一个称为bss的区域,通常初始化为零。.comm 和 .lcomm 位置都分配在 bss 中。.comm 符号被标记为全局符号,而 .lcomm 符号则不是。

如果您有两个具有相同符号且标记为 .lcomm 的文件,它们将引用bss 中的不同内存位置。另一方面,如果您有两个具有相同符号且标记为 .comm 的文件,它们将引用bss 中的相同内存位置。