为什么要在PE文件中创建不同的code / data / bss部分?

戈文德·帕玛(Govind Parmar)

作为对可执行文件格式有粗略了解的人,我发现#pragmaMSDN文档中的以下指令非常有趣:

将某些变量和函数体放在.sectionPE / OBJ文件中的内容与默认部分不同的地方到底有什么好处

好吧,传统上字面量是恒定的(例如static const char* const = "hello world";),部分原因是它们位于该const_seg区域中,如果它们位于data_segbss_seg它们可能是可变的(尽管出于明显的原因不能原地调整大小)。

另一个原因(出于同样的原因)可能是在编译时预先初始化复杂的数据结构,但允许在运行时对其进行操作,例如,一个大型的已知值哈希表,尽管这需要编译器支持。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

execstack not aplied at .rodata .data .bss 部分.... 有什么问题?

来自分类Dev

Linux size命令,为什么bss和data部分不为零?

来自分类Dev

可以将库.a文件中的.text,.data,.bss分成单独的部分

来自分类Dev

.bss 部分中一個變量的不同內存

来自分类Dev

如何使用 nasm 用 .bss 部分编译共享文件

来自分类Dev

写入x86汇编中的.bss部分

来自分类Dev

与.data中的符号相比,gdb对于.bss中的符号的行为有所不同

来自分类Dev

为什么编译器将数据放在PE和ELF文件的.text(code)部分中,并且CPU如何区分数据和代码?

来自分类Linux

为什么需要.bss段?

来自分类Dev

仅在Android NDK aarch64构建中才有“符号表的全局部分中的本地符号'__bss_start'”

来自分类Dev

(N)ASM,ELF64-内存中的.data和.bss顺序

来自分类Dev

linux elf .bss 部分内存开销

来自分类Dev

.bss部分生成段错误,并且

来自分类Dev

对于汇编/C 中的变量,为什么要使用 .data 而不是在 .bss 中保留空间并在运行时初始化?

来自分类Dev

编译器是否将数据放在PE或ELF文件的.text部分中?如果是这样,为什么?

来自分类Dev

在用Dev C ++编译后,为什么在PE文件中还有这么多其他部分?

来自分类Dev

为什么BSS段默认为“ 16”?

来自分类Dev

从gdb中的.bss打印“数组”

来自分类Dev

为什么对象(ELF)文件中.bss节没有内容?

来自分类Linux

x86 ASM Linux-使用.bss部分

来自分类Dev

ELF .data部分中的符号表

来自分类Dev

访问位置无关代码中的.data部分

来自分类Dev

确定目标文件上的BSS大小

来自分类Dev

为什么在BSS和数据段中将不同大小的内存分配给整数?

来自分类Dev

如何从大小中仅读取bss

来自分类Linux

为什么添加变量时.bss段没有增加?

来自分类Dev

在循环中检索并打印不同data.frames的部分

来自分类Dev

为什么要在ReactJS教程的Time Travel部分中删除构造函数

来自分类Dev

为什么要在PartialView上使用EditorFor在MVC 4.5+中呈现部分视图

Related 相关文章

  1. 1

    execstack not aplied at .rodata .data .bss 部分.... 有什么问题?

  2. 2

    Linux size命令,为什么bss和data部分不为零?

  3. 3

    可以将库.a文件中的.text,.data,.bss分成单独的部分

  4. 4

    .bss 部分中一個變量的不同內存

  5. 5

    如何使用 nasm 用 .bss 部分编译共享文件

  6. 6

    写入x86汇编中的.bss部分

  7. 7

    与.data中的符号相比,gdb对于.bss中的符号的行为有所不同

  8. 8

    为什么编译器将数据放在PE和ELF文件的.text(code)部分中,并且CPU如何区分数据和代码?

  9. 9

    为什么需要.bss段?

  10. 10

    仅在Android NDK aarch64构建中才有“符号表的全局部分中的本地符号'__bss_start'”

  11. 11

    (N)ASM,ELF64-内存中的.data和.bss顺序

  12. 12

    linux elf .bss 部分内存开销

  13. 13

    .bss部分生成段错误,并且

  14. 14

    对于汇编/C 中的变量,为什么要使用 .data 而不是在 .bss 中保留空间并在运行时初始化?

  15. 15

    编译器是否将数据放在PE或ELF文件的.text部分中?如果是这样,为什么?

  16. 16

    在用Dev C ++编译后,为什么在PE文件中还有这么多其他部分?

  17. 17

    为什么BSS段默认为“ 16”?

  18. 18

    从gdb中的.bss打印“数组”

  19. 19

    为什么对象(ELF)文件中.bss节没有内容?

  20. 20

    x86 ASM Linux-使用.bss部分

  21. 21

    ELF .data部分中的符号表

  22. 22

    访问位置无关代码中的.data部分

  23. 23

    确定目标文件上的BSS大小

  24. 24

    为什么在BSS和数据段中将不同大小的内存分配给整数?

  25. 25

    如何从大小中仅读取bss

  26. 26

    为什么添加变量时.bss段没有增加?

  27. 27

    在循环中检索并打印不同data.frames的部分

  28. 28

    为什么要在ReactJS教程的Time Travel部分中删除构造函数

  29. 29

    为什么要在PartialView上使用EditorFor在MVC 4.5+中呈现部分视图

热门标签

归档