#### 汇编指示(伪操作)

汇编程序中以"."开头的名称不是指令的助记符，不会被翻译成机器指令，而是给汇编器一些特殊的指示，称为汇编指示(Assembler Directive)或伪操作(Pseudo-operation)。

##### .section指示

.section指示把代码划分成若干个段(section)，程序被操作系统加载时，每个段被加载到不同的地址，具有不同的读写执行权限。

- .data段保存程序的数据是可读写的，C程序的全局变量也属于.data段。

- .text段保存代码，是只读和可执行的。
- .bss段是未初始化的数据段

##### .incbin指示

把文件原封不动地放在当前位置。文件必须用引号括起来。

##### .globl指示

.globl指示告诉汇编器_start这个符号要被链接器用到，所以要在目标文件的符号表中给它特殊标记。

##### .long指示

 .long指示声明一组数，每个数32位，相当于C数组。

##### .byte指示

.byte指示也是声明一组数，每个数8位

##### .ascii指示

声明一个字符串，每个字符取值为相应的ASCII码。和C语言不同的是这样声明的字符串末尾是没有'\0'字符的。

##### .cfi_startproc和.cfi_closeproc

它们成对出现，分别在函数的开头和结尾。.cfi_startproc初始化一些内部数据结构，并注入初始CFI指令。.cfi_closeproc关闭由.cfi_startproc打开的入口。

##### .cfi_undefined

指定寄存器的值将不能再恢复了。

##### .option

修改与汇编代码相关的汇编器选项。

#### 参考资料

[The GNU Assembler](http://tigcc.ticalc.org/doc/gnuasm.html#SEC97B)

[Using AS](https://sourceware.org/binutils/docs/as/index.html#Top)