.section伪操作

用户可以通过.section伪操作来自定义一个段,格式如下:

.section section_name [, "flags"[, %type[,flag_specific_arguments]]] 

注释:

  • section_name 段名.
    每一个段以段名为开始,以下一个其它段名或者文件结尾为结束
  • flags
    这些段都有缺省的标志(flags),连接器可以识别这些标志。(与armasm中的AREA相同)。
  • type
    type可以是 @progbits(节中包含数据),@nobits(节中不含数据,只是占位空间),@note(节中包含注释信息,不是程序)。

下面是ELF格式允许的段标志:

<标志> 含义
a 允许段
w 可写段
x 执行段

【例3】定义段

 .section .mysection @自定义数据段,段名为 ".mysection"
 .align 2
 strtemp:
 .ascii "Temp string /n/0"

汇编系统预定义的段名

.text @代码段
.data @初始化数据段
.bss @未初始化数据段
.sdata @
.sbss @

注意:

  • 源程序中 .bss段 应该在 .text 之前!