.elseif.ELSEIF.elseif`.elseif` is part of the as support for conditional assembly; see `.if`. It is shorthand for beginning a new `.if` block that would otherwise fill the entire `.else` section.8https://sourceware.org/binutils/docs-2.41/as/Elseif.html.string.STRING.string *"str"0Copy the characters in *str* to the object file.8https://sourceware.org/binutils/docs-2.41/as/String.html.cfi_personality.CFI_PERSONALITY#.cfi_personality *encoding [, exp]*@`.cfi_personality` defines personality routine and its encoding.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.cfi_def_cfa_register.CFI_DEF_CFA_REGISTER .cfi_def_cfa_register *register*`.cfi_def_cfa_register` modifies a rule for computing CFA. From now on register will be used instead of the old one. Offset remains the same.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.uleb128.ULEB128.uleb128 *expressions**uleb128* stands for "unsigned little endian base 128." This is a compact, variable length representation of numbers used by the DWARF symbolic debugging format. See `.sleb128`.9https://sourceware.org/binutils/docs-2.41/as/Uleb128.html .abort (coff) .ABORT (COFF) .ABORT (COFF)TWhen producing COFF output, `as` accepts this directive as a synonym for '`.abort`'.Fhttps://sourceware.org/binutils/docs-2.41/as/ABORT-_0028COFF_0029.html.macro.MACRO.macro*.macro *macname*.macro *macname macargs ...*[The commands `.macro` and `.endm` allow you to define macros that generate assembly output.7https://sourceware.org/binutils/docs-2.41/as/Macro.html.cfi_rel_offset.CFI_REL_OFFSET".cfi_rel_offset *register, offset*WPrevious value of *register* is saved at offset *offset* from the current CFA register.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.dim.DIM.dimThis directive is generated by compilers to include auxiliary debugging information in the symbol table. It is only permitted inside `.def/.endef` pairs.5https://sourceware.org/binutils/docs-2.41/as/Dim.html.endfunc.ENDFUNC.endfunc>`.endfunc` marks the end of a function specified with `.func`.9https://sourceware.org/binutils/docs-2.41/as/Endfunc.html.int.INT.int *expressions*Expect zero or more expressions, of any section, separated by commas. For each expression, emit a number that, at run time, is the value of that expression.5https://sourceware.org/binutils/docs-2.41/as/Int.html.print.PRINT.print *string*f`as` will print *string* on the standard output during assembly. You must put string in double quotes.7https://sourceware.org/binutils/docs-2.41/as/Print.html .cfi_restore .CFI_RESTORE.cfi_restore *register*`.cfi_restore` says that the rule for *register* is now the same as it was at the beginning of the function, after all initial instruction added by `.cfi_startproc` were executed.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.comm.COMM.comm *symbol , length*`.comm` declares a common symbol named *symbol*. When linking, a common symbol in one object file may be merged with a defined or common symbol of the same name in another object file.6https://sourceware.org/binutils/docs-2.41/as/Comm.html.exitm.EXITM.exitm-Exit early from the current macro definition.7https://sourceware.org/binutils/docs-2.41/as/Macro.html.bundle_align_mode.BUNDLE_ALIGN_MODE.bundle_align_mode *abs-expr*`.bundle_align_mode` enables or disables *aligned instruction bundle* mode. In this mode, sequences of adjacent instructions are grouped into fixed-sized *bundles*.Chttps://sourceware.org/binutils/docs-2.41/as/Bundle-directives.html.local.LOCAL.local *names*This directive, which is available for ELF targets, marks each symbol in the comma-separated list of *names* as a local symbol so that it will not be externally visible. If the symbols do not already exist, they will be created.7https://sourceware.org/binutils/docs-2.41/as/Local.html .popsection .POPSECTION .popsectionThis ELF section stack manipulation directive replaces the current section (and subsection) with the top section (and subsection) on the section stack. This section is popped off the stack.<https://sourceware.org/binutils/docs-2.41/as/PopSection.html .subsection .SUBSECTION.subsection *name*This ELF section stack manipulation directive replaces the current subsection with *name*. The current section is not changed. The replaced subsection is put onto the section stack in place of the then current top of stack subsection.<https://sourceware.org/binutils/docs-2.41/as/SubSection.html.cfi_signal_frame.CFI_SIGNAL_FRAME.cfi_signal_frame+Mark current function as signal trampoline.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.cfi_window_save.CFI_WINDOW_SAVE.cfi_window_save%SPARC register window has been saved.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.globl.GLOBL.globl *symbol*`.globl` makes the symbol visible to `ld`. If you define symbol in your partial program, its value is made available to other partial programs that are linked with it.8https://sourceware.org/binutils/docs-2.41/as/Global.html.eject.EJECT.ejectDForce a page break at this point, when generating assembly listings.7https://sourceware.org/binutils/docs-2.41/as/Eject.html.end.END.endp`.end` marks the end of the assembly file. `as` does not process anything in the file past the `.end` directive.5https://sourceware.org/binutils/docs-2.41/as/End.html.ifc.IFC.ifc *string1,string2*GAssembles the following section of code if the two strings are the same4https://sourceware.org/binutils/docs-2.41/as/If.html.ifnb.IFNB .ifnb *text*PAssembles the following section of code if the operand is non-blank (non-empty).4https://sourceware.org/binutils/docs-2.41/as/If.html.loc_mark_labels.LOC_MARK_LABELS.loc_mark_labels *enable*When emitting DWARF2 line number information, the `.loc_mark_labels` directive makes the assembler emit an entry to the `.debug_line` line number matrix with the `basic_block` register in the state machine set whenever a code label is seen.Ihttps://sourceware.org/binutils/docs-2.41/as/Loc_005fmark_005flabels.html.psize.PSIZE.psize *lines , columns*Use this directive to declare the number of lines—and, optionally, the number of columns—to use for each page, when generating listings.7https://sourceware.org/binutils/docs-2.41/as/Psize.html .pushsection .PUSHSECTIONC.pushsection *name [, subsection] [, "flags"[, @type[,arguments]]]*This ELF section stack manipulation directive pushes the current section (and subsection) onto the top of the section stack, and then replaces the current section and subsection with *name* and *subsection*.=https://sourceware.org/binutils/docs-2.41/as/PushSection.html.endef.ENDEF.endefFThis directive flags the end of a symbol definition begun with `.def`.7https://sourceware.org/binutils/docs-2.41/as/Endef.html.sbttl.SBTTL.sbttl *"subheading"*oUse *subheading* as the title (third line, immediately after the title line) when generating assembly listings.7https://sourceware.org/binutils/docs-2.41/as/Sbttl.html.short.SHORT.short *expressions*`.short` is normally the same as '`.word`'. See `.word`. In some configurations, however, `.short` and `.word` generate numbers of different lengths.7https://sourceware.org/binutils/docs-2.41/as/Short.html.mri.MRI .mri *val*If *val* is non-zero, this tells as to enter MRI mode. If *val* is zero, this tells as to exit MRI mode. This change affects code assembled until the next `.mri` directive, or until the end of the file.5https://sourceware.org/binutils/docs-2.41/as/MRI.html.ifeq.IFEQ.ifeq *absolute expression*@Assembles the following section of code if the argument is zero.4https://sourceware.org/binutils/docs-2.41/as/If.html.abort.ABORT.abort.This directive stops the assembly immediately.7https://sourceware.org/binutils/docs-2.41/as/Abort.html.ident.IDENT.identHThis directive is used by some assemblers to place tags in object files.7https://sourceware.org/binutils/docs-2.41/as/Ident.html.fill.FILL.fill *repeat, size, value*`repeat`, `size` and `value` are absolute expressions. This emits `repeat` copies of `size` bytes. `Repeat` may be zero or more. `Size` may be zero or more, but if it is more than 8, then it is deemed to have the value 8, compatible with other people's assemblers.6https://sourceware.org/binutils/docs-2.41/as/Fill.html.line.LINE.line *line-number*Change the logical line number. *line-number* must be an absolute expression. The next line has that logical line number. Therefore any other statements on the current line (after a statement separator character) are reported as on logical line number *line-number* - 1.6https://sourceware.org/binutils/docs-2.41/as/Line.html .noaltmacro .NOALTMACRO .noaltmacro.Disable alternate macro mode. See `.altmacro`.<https://sourceware.org/binutils/docs-2.41/as/Noaltmacro.html.quad.QUAD.quad *expressions*For 64-bit architectures, or more generally with any GAS configured to support 64-bit target virtual addresses, this is like '`.int`', but emitting 64-bit quantities. Otherwise `.quad` expects zero or more bignums, separated by commas.6https://sourceware.org/binutils/docs-2.41/as/Quad.html .cfi_escape .CFI_ESCAPE.cfi_escape *expression[, ...]*Allows the user to add arbitrary bytes to the unwind info. One might use this to add OS-specific CFI opcodes, or generic CFI opcodes that GAS does not yet support.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.skip.SKIP.skip *size [,fill]*This directive emits *size* bytes, each of value *fill*. Both *size* and *fill* are absolute expressions. If the comma and *fill* are omitted, *fill* is assumed to be zero. This is the same as '`.space`'.6https://sourceware.org/binutils/docs-2.41/as/Skip.html.tag.TAG.tag *structname*This directive is generated by compilers to include auxiliary debugging information in the symbol table. It is only permitted inside `.def`/`.endef` pairs. Tags are used to link structure definitions in the symbol table with instances of those structures.5https://sourceware.org/binutils/docs-2.41/as/Tag.html.zero.ZERO .zero *size*This directive emits *size* 0-valued bytes. *size* must be an absolute expression. This directive is actually an alias for the '`.skip`' directive so it can take an optional second argument of the value to store in the bytes instead of zero.6https://sourceware.org/binutils/docs-2.41/as/Zero.html.single.SINGLE.single *filename*gThis directive assembles zero or more flonums, separated by commas. It has the same effect as `.float`.8https://sourceware.org/binutils/docs-2.41/as/Single.html.cfi_inline_lsda.CFI_INLINE_LSDA.cfi_inline_lsda *[align]*q`.cfi_inline_lsda` marks the start of a LSDA data section and switches to the corresponding `.gnu.extab` section.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.string8.STRING8.string8* *"str"0Copy the characters in *str* to the object file.8https://sourceware.org/binutils/docs-2.41/as/String.html .cfi_def_cfa .CFI_DEF_CFA.cfi_def_cfa *register, offset*f`.cfi_def_cfa` defines a rule for computing CFA as: *take address from register and add offset to it*.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.ds.DS.ds*[size] number [,fill]*EThis directive emits *number* copies of *fill*, each of *size* bytes.4https://sourceware.org/binutils/docs-2.41/as/Ds.html.global.GLOBAL.global *symbol*`.global` makes the symbol visible to `ld`. If you define symbol in your partial program, its value is made available to other partial programs that are linked with it.8https://sourceware.org/binutils/docs-2.41/as/Global.html .cfi_sections .CFI_SECTIONS.cfi_sections *list*`.cfi_sections` may be used to specify whether CFI directives should emit `.eh_frame` section, `.debug_frame` section and/or `.sframe` section.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.lflags.LFLAGS.lflagsT`as` accepts this directive for compatibility with other assemblers, but ignores it.8https://sourceware.org/binutils/docs-2.41/as/Lflags.html.ifdef.IFDEF.ifdef *symbol*QAssembles the following section of code if the specified symbol has been defined.4https://sourceware.org/binutils/docs-2.41/as/If.html.ifge.IFGE.ifge *absolute expression*YAssembles the following section of code if the argument is greater than or equal to zero.4https://sourceware.org/binutils/docs-2.41/as/If.html.incbin.INCBIN.incbin *"file"[,skip[,count]]*IThe `.incbin` directive includes `file` verbatim at the current location.8https://sourceware.org/binutils/docs-2.41/as/Incbin.html.dc.DC.dc*[size] expressions*The `.dc` directive expects zero or more expressions separated by commas. These expressions are evaluated and their values inserted into the current section.4https://sourceware.org/binutils/docs-2.41/as/Dc.html.bundle_unlock.BUNDLE_UNLOCK.bundle_unlocktThe `.bundle_lock` and directive `.bundle_unlock` directives allow explicit control over instruction bundle padding.Chttps://sourceware.org/binutils/docs-2.41/as/Bundle-directives.html.2byte.2BYTE$.2byte *expression [, expression]\**Each expression is evaluated in turn and placed in the next two bytes of the current output section, using the endian model of the target. If an expression will not fit in two bytes, a warning message is displayed and the least significant two bytes of the expression’s value are used.7https://sourceware.org/binutils/docs-2.41/as/2byte.html.sleb128.SLEB128.sleb128 *expressions**sleb128* stands for "signed little endian base 128." This is a compact, variable length representation of numbers used by the DWARF symbolic debugging format.9https://sourceware.org/binutils/docs-2.41/as/Sleb128.html .vtable_entry .VTABLE_ENTRY.vtable_entry *table, offset*yThis directive finds or creates a symbol table and creates a `VTABLE_ENTRY` relocation for it with an addend of `offset`.=https://sourceware.org/binutils/docs-2.41/as/VTableEntry.html .protected .PROTECTED.protected *names*This ELF visibility directive overrides the named symbols default visibility (which is set by their binding: local, global or weak). The directive sets the visibility to protected which means that any references to the symbols from within the components that defines them must be resolved to the definition in that component, even if a definition in another component would normally preempt this.;https://sourceware.org/binutils/docs-2.41/as/Protected.html.double.DOUBLE.double *flonums*c`.double` expects zero or more *flonums*, separated by commas. It assembles floating point numbers.8https://sourceware.org/binutils/docs-2.41/as/Double.html .tls_common .TLS_COMMON).tls_common *symbol, length[, alignment]*This directive behaves in the same way as the `.comm` directive (see `.comm symbol , length`) except that symbol has type of STT_TLS instead of STT_OBJECT.@https://sourceware.org/binutils/docs-2.41/as/Tls_005fcommon.html.ifnes.IFNES.ifnes *string1,string2*LAssembles the following section of code if the two strings are not the same.4https://sourceware.org/binutils/docs-2.41/as/If.html.4byte.4BYTE$.4byte *expression [, expression]\**!Each expression is evaluated in turn and placed in the next four bytes of the current output section, using the endian model of the target. If an expression will not fit in four bytes, a warning message is displayed and the least significant two bytes of the expression’s value are used.7https://sourceware.org/binutils/docs-2.41/as/4byte.html.def.DEF .def *name*}Begin defining debugging information for a symbol *name*; the definition extends until the *.endef* directive is encountered.5https://sourceware.org/binutils/docs-2.41/as/Def.html.irpc.IRPC.irpc *symbol,values...*Evaluate a sequence of statements assigning different values to *symbol*. The sequence of statements starts at the `.irpc` directive, and is terminated by an `.endr` directive. For each character in *value, symbol* is set to the character, and the sequence of statements is assembled.6https://sourceware.org/binutils/docs-2.41/as/Irpc.html.cfi_restore_state.CFI_RESTORE_STATE.cfi_restore_stateo`.cfi_restore_state` pops the set of rules for every register off the stack and places them in the current row.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.err.ERR.errIf `as` assembles a `.err` directive, it will print an error message and, unless the `-Z` option was used, it will not generate an object file.5https://sourceware.org/binutils/docs-2.41/as/Err.html.p2align.P2ALIGN1.p2align*[w1] [abs-expr[, abs-expr[, abs-expr]]]*VPad the location counter (in the current subsection) to a particular storage boundary.9https://sourceware.org/binutils/docs-2.41/as/P2align.html.weak.WEAK .weak *names*This directive sets the weak attribute on the comma separated list of symbol *names*. If the symbols do not already exist, they will be created.6https://sourceware.org/binutils/docs-2.41/as/Weak.html.cfi_val_offset.CFI_VAL_OFFSET".cfi_val_offset *register, offset*-Previous value of register is CFA + *offset*.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.byte.BYTE.byte *expressions*o`.byte` expects zero or more expressions, separated by commas. Each expression is assembled into the next byte.6https://sourceware.org/binutils/docs-2.41/as/Byte.html.endif.ENDIF.endif`.endif` is part of the as support for conditional assembly; it marks the end of a block of code that is only assembled conditionally. See `.if`.7https://sourceware.org/binutils/docs-2.41/as/Endif.html.lcomm.LCOMM.lcomm *symbol , length*Reserve *length* (an absolute expression) bytes for a local common denoted by *symbol*. The section and value of *symbol* are those of the new local common.7https://sourceware.org/binutils/docs-2.41/as/Lcomm.html.symver.SYMVER,.symver *name, name2@nodename[ ,visibility]*.symver *name, name2@nodename* .symver *name, name2@@@nodename*Use the `.symver` directive to bind symbols to specific version nodes within a source file. This is only supported on ELF platforms, and is typically used when assembling files to be linked into a shared library.8https://sourceware.org/binutils/docs-2.41/as/Symver.html.vtable_inherit.VTABLE_INHERIT.vtable_inherit *child, parent*his directive finds the symbol `child` and finds or creates the symbol `parent` and then creates a `VTABLE_INHERIT` relocation for the parent whose addend is the value of the child symbol. As a special case the parent name of `0` is treated as referring to the \*ABS\* section.?https://sourceware.org/binutils/docs-2.41/as/VTableInherit.html.endm.ENDM.endm#Mark the end of a macro definition.7https://sourceware.org/binutils/docs-2.41/as/Macro.html.ifne.IFNE.ifne *absolute expression*{Assembles the following section of code if the argument is not equal to zero (in other words, this is equivalent to `.if`).4https://sourceware.org/binutils/docs-2.41/as/If.html.fail.FAIL.fail *expression*Generates an error or a warning. If the value of the expression is 500 or more, `as` will print a warning message. If the value is less than 500, `as` will print an error message.6https://sourceware.org/binutils/docs-2.41/as/Fail.html .internal .INTERNAL.internal *names*This is an ELF visibility directive that overrides the named symbols default visibility (which is set by their binding: local, global or weak). The directive sets the visibility to internal which means that the symbols are considered to be hidden (i.e., not visible to other components), and that some extra, processor specific processing must also be performed upon the symbols as well.:https://sourceware.org/binutils/docs-2.41/as/Internal.html.version.VERSION.version *"string"*This directive creates a `.note` section and places into it an ELF formatted note of type NT_VERSION. The note’s name is set to string.9https://sourceware.org/binutils/docs-2.41/as/Version.html.rept.REPT .rept *count*hRepeat the sequence of lines between the `.rept` directive and the next `.endr` directive *count* times.6https://sourceware.org/binutils/docs-2.41/as/Rept.html.include.INCLUDE.include "*file*"eThis directive provides a way to include supporting files at specified points in your source program.9https://sourceware.org/binutils/docs-2.41/as/Include.html.asciz.ASCIZ.asciz "*string*"...t`.asciz` is just like `.ascii`, but each string is followed by a zero byte. The "z" in '`.asciz`' stands for "zero".7https://sourceware.org/binutils/docs-2.41/as/Asciz.html.nolist.NOLIST.nolist8Control (in conjunction with the `.list` directive) whether or not assembly listings are generated. These two directives maintain an internal counter (which is zero initially). `.list` increments the counter, and `.nolist` decrements it. Assembly listings are generated whenever the counter is greater than zero.8https://sourceware.org/binutils/docs-2.41/as/Nolist.html.text.TEXT.text *subsection*Tells *as* to assemble the following statements onto the end of the text subsection numbered *subsection*, which is an absolute expression. If *subsection* is omitted, subsection number zero is used.6https://sourceware.org/binutils/docs-2.41/as/Text.html .ifnotdef .IFNOTDEF.ifnotdef *symbolUAssembles the following section of code if the specified symbol has not been defined.4https://sourceware.org/binutils/docs-2.41/as/If.html.ifeqs.IFEQS.ifeqs *string1, string2*GAnother form of `.ifc`. The strings must be quoted using double quotes.4https://sourceware.org/binutils/docs-2.41/as/If.html.cfi_val_encoded_addr.CFI_VAL_ENCODED_ADDR1.cfi_val_encoded_addr *register, encoding, label*The current value of *register* is *label*. The value of *label* will be encoded in the output file according to *encoding*; see the description of `.cfi_personality` for details on this encoding.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.irp.IRP.irp *symbol,values...*Evaluate a sequence of statements assigning different values to *symbol*. The sequence of statements starts at the `.irp` directive, and is terminated by an `.endr` directive. For each value, *symbol* is set to *value*, and the sequence of statements is assembled.5https://sourceware.org/binutils/docs-2.41/as/Irp.html.ln.LN.ln *line-number*Change the logical line number. *line-number* must be an absolute expression. The next line has that logical line number. Therefore any other statements on the current line (after a statement separator character) are reported as on logical line number *line-number* - 1.4https://sourceware.org/binutils/docs-2.41/as/Ln.html.long.LONG.long *expressions*Expect zero or more expressions, of any section, separated by commas. For each expression, emit a number that, at run time, is the value of that expression. `.long` is the same as '`.int`'.6https://sourceware.org/binutils/docs-2.41/as/Long.html .cfi_fde_data .CFI_FDE_DATA!.cfi_fde_data *[opcode1 [, ...]]*c`.cfi_fde_data` is used to describe the compact unwind opcodes to be used for the current function.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.reloc.RELOC).reloc *offset, reloc_name[, expression]*OGenerate a relocation at *offset* of type *reloc_name* with value *expression*.7https://sourceware.org/binutils/docs-2.41/as/Reloc.html.section.SECTION.section *name*.section *name[, "flags"]*.section *name[, subsection]*XUse the `.section` directive to assemble the following code into a section named *name*.9https://sourceware.org/binutils/docs-2.41/as/Section.html.LOCAL.LOCAL.LOCAL *name [ , ... ]*}Warning: `LOCAL` is only available if you select "alternate macro syntax" with '`--alternate'` or .altmacro. See `.altmacro`.7https://sourceware.org/binutils/docs-2.41/as/Macro.html.octa.OCTA.octa *bignums*nThis directive expects zero or more bignums, separated by commas. For each bignum, it emits a 16-byte integer.6https://sourceware.org/binutils/docs-2.41/as/Octa.html.data.DATA.data *subsection*`.data` tells as to assemble the following statements onto the end of the data subsection numbered *subsection* (which is an absolute expression). If *subsection* is omitted, it defaults to zero.6https://sourceware.org/binutils/docs-2.41/as/Data.html.equ.EQU.equ *symbol, expression*bThis directive sets the value of symbol to expression. It is synonymous with '`.set`'; see `.set`.5https://sourceware.org/binutils/docs-2.41/as/Equ.html.cfi_startproc.CFI_STARTPROC.cfi_startproc [simple]`.cfi_startproc` is used at the beginning of each function that should have an entry in `.eh_frame`. It initializes some internal data structures. Don't forget to close the function by `.cfi_endproc`.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.iflt.IFLT.iflt *absolute expression*JAssembles the following section of code if the argument is less than zero.4https://sourceware.org/binutils/docs-2.41/as/If.html.dcb.DCB.dcb*[size] number [,fill]*AThis directive emits number copies of *fill*, each of size bytes.5https://sourceware.org/binutils/docs-2.41/as/Dcb.html.cfi_same_value.CFI_SAME_VALUE.cfi_same_value *register*_Current value of *register* is the same like in the previous frame, i.e. no restoration needed.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.ifle.IFLE.ifle *absolute expression*VAssembles the following section of code if the argument is less than or equal to zero.4https://sourceware.org/binutils/docs-2.41/as/If.html.cfi_remember_state.CFI_REMEMBER_STATE.cfi_remember_stateX`.cfi_remember_state` pushes the set of rules for every register onto an implicit stack.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html .linkonce .LINKONCE.linkonce *[type]ark the current section so that the linker only includes a single copy of it. This may be used to include the same section in several different object files, but ensure that the linker will only include it once in the final output file.:https://sourceware.org/binutils/docs-2.41/as/Linkonce.html.hidden.HIDDEN.hidden *names*This is an ELF visibility directive that overrides the named symbols default visibility (which is set by their binding: local, global or weak). The directive sets the visibility to hidden which means that the symbols are not visible to other components8https://sourceware.org/binutils/docs-2.41/as/Hidden.html.list.LIST.list:Control (in conjunction with the `.nolist` directive) whether or not assembly listings are generated. These two directives maintain an internal counter (which is zero initially). `.list` increments the counter, and `.nolist` decrements it. Assembly listings are generated whenever the counter is greater than zero.6https://sourceware.org/binutils/docs-2.41/as/List.html.hword.HWORD.hword *expressions*This directive is a synonym for '`.short`'; depending on the target architecture, it may also be a synonym for '`.word`'. It expects zero or more expressions, and emits a 16 bit number for each.7https://sourceware.org/binutils/docs-2.41/as/hword.html.set.SET.set *symbol, expression*mSet the value of *symbol* to *expression*. This changes *symbol*'s value and type to conform to *expression*.5https://sourceware.org/binutils/docs-2.41/as/Set.html.extern.EXTERN.externj`.extern` is accepted in the source program—for compatibility with other assemblers—but it is ignored.8https://sourceware.org/binutils/docs-2.41/as/Extern.html .cfi_lsda .CFI_LSDA.cfi_lsda *encoding [, exp]**`.cfi_lsda` defines LSDA and its encoding.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.ascii.ASCII.ascii "*string*"...`.ascii` expects zero or more string literals (see Strings) separated by commas. It assembles each string (with no automatic trailing zero byte) into consecutive addresses.7https://sourceware.org/binutils/docs-2.41/as/Ascii.html.cfi_return_column.CFI_RETURN_COLUMN.cfi_return_column *register*Change return column *register*, i.e. the return address is either directly in *register* or can be accessed by rules for *register*.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.file.FILE.file *string*.file *fileno filename*This version of the `.file` directive tells `as` that we are about to start a new logical file. When emitting DWARF2 line number information, `.file` assigns filenames to the `.debug_line` file name table.6https://sourceware.org/binutils/docs-2.41/as/File.html.ifnc.IFNC.ifnc *string1,string2*LAssembles the following section of code if the two strings are not the same.4https://sourceware.org/binutils/docs-2.41/as/If.html .previous .PREVIOUS .previousThis ELF section stack manipulation directive swaps the current section (and subsection) with most recently referenced section/subsection pair prior to this one. Multiple .previous directives in a row will flip between two sections (and their subsections).:https://sourceware.org/binutils/docs-2.41/as/Previous.html.align.ALIGN+.align *[abs-expr[, abs-expr[, abs-expr]]]*VPad the location counter (in the current subsection) to a particular storage boundary.7https://sourceware.org/binutils/docs-2.41/as/Align.html.stabn.STABN$.stabn *type , other , desc , value*bEmits symbols for use by symbolic debuggers. The name of the symbol is set to the empty string "".6https://sourceware.org/binutils/docs-2.41/as/Stab.html.space.SPACE.space *size [,fill]*This directive emits *size* bytes, each of value *fill*. Both *size* and *fill* are absolute expressions. If the comma and *fill* are omitted, *fill* is assumed to be zero. This is the same as '`.skip`'.7https://sourceware.org/binutils/docs-2.41/as/Space.html.org.ORG.org *new-lc , fill*Advance the location counter of the current section to *new-lc*. *new-lc* is either an absolute expression or an expression with the same section as the current subsection.5https://sourceware.org/binutils/docs-2.41/as/Org.html.func.FUNC.func *name[, label]*`.func` emits debugging information to denote function name, and is ignored unless the file is assembled with debugging enabled.6https://sourceware.org/binutils/docs-2.41/as/Func.html.offset.OFFSET .offset *loc*`Set the location counter to *loc* in the absolute section. *loc* must be an absolute expression.8https://sourceware.org/binutils/docs-2.41/as/Offset.html .string16 .STRING16.string16* *"str"qCopy the characters in *str* to the object file. Each 8-bit character from str is copied and expanded to 16 bits.8https://sourceware.org/binutils/docs-2.41/as/String.html.struct.STRUCT.struct *expression*Provides a means to associate symvolic names for offsetes. Switch to the absolute section, and set the section offset to expression, which must be an absolute expression.8https://sourceware.org/binutils/docs-2.41/as/Struct.html.\@.\@.\@`as` maintains a counter of how many macros it has executed in this pseudo-variable; you can copy that number to your output with '`\@`', but only within a macro definition.7https://sourceware.org/binutils/docs-2.41/as/Macro.html.cfi_personality_id.CFI_PERSONALITY_ID.cfi_personality_id *id*j`.cfi_personality_id` defines a personality routine by its index as defined in a compact unwinding format.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.nops.NOPS.nops *size[, control]*This directive emits no-op instructions. It is specific to the Intel 80386 and AMD x86-64 targets. It takes a *size* argument and generates *size* bytes of no-op instructions. *size* must be absolute and positive.6https://sourceware.org/binutils/docs-2.41/as/Nops.html.type.TYPE .type *int*.type *name , type_description*3This directive is used to set the type of a symbol.6https://sourceware.org/binutils/docs-2.41/as/Type.html.ifndef.IFNDEF.ifndef *symbolUAssembles the following section of code if the specified symbol has not been defined.4https://sourceware.org/binutils/docs-2.41/as/If.html.val.VAL .val *addr*This directive, permitted only within `.def`/`.endef` pairs, records the address addr as the value attribute of a symbol table entry.5https://sourceware.org/binutils/docs-2.41/as/Val.html .altmacro .ALTMACRO .altmacroEnable alternate macro mode.:https://sourceware.org/binutils/docs-2.41/as/Altmacro.html.warning.WARNING.warning *"string"*This directive emits a warning, but you can specify a string that will be emitted as the warning message. If you don’t specify the message, it defaults to "`.warning` directive invoked in source file".9https://sourceware.org/binutils/docs-2.41/as/Warning.html .bundle_lock .BUNDLE_LOCK .bundle_locktThe `.bundle_lock` and directive `.bundle_unlock` directives allow explicit control over instruction bundle padding.Chttps://sourceware.org/binutils/docs-2.41/as/Bundle-directives.html.eqv.EQV.eqv *symbol, epxressionThe `.eqv` directive is like `.equiv`, but no attempt is made to evaluate the expression or any part of it immediately. Instead each time the resulting symbol is used in an expression, a snapshot of its current value is taken.5https://sourceware.org/binutils/docs-2.41/as/Eqv.html.if.IF.if *absolute expreession*`.if` marks the beginning of a section of code which is only considered part of the source program being assembled if the argument (which must be an absolute expression) is non-zero.4https://sourceware.org/binutils/docs-2.41/as/If.html.balign.BALIGN0.balign*[wl] [abs-expr[, abs-expr[, abs-expr]]]*VPad the location counter (in the current subsection) to a particular storage boundary.8https://sourceware.org/binutils/docs-2.41/as/Balign.html.ifb.IFB .ifb *text*HAssembles the following section of code if the operand is blank (empty).4https://sourceware.org/binutils/docs-2.41/as/If.html.float.FLOAT.float *flonums*CThis directive assembles zero or more flonums, separated by commas.7https://sourceware.org/binutils/docs-2.41/as/Float.html.title.TITLE.title *"heading"*Use *heading* as the title (second line, immediately after the source file name and pagenumber) when generating assembly listings.7https://sourceware.org/binutils/docs-2.41/as/Title.html.else.ELSE.else`.else` is part of the as support for conditional assembly; see `.if`. It marks the beginning of a section of code to be assembled if the condition for the preceding `.if` was false.6https://sourceware.org/binutils/docs-2.41/as/Else.html.cfi_adjust_cfa_offset.CFI_ADJUST_CFA_OFFSET.cfi_adjust_cfa_offsetqSame as `.cfi_def_cfa_offset` but *offset* is a relative value that is added/subtracted from the previous offset.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.scl.SCL .scl *class*hSet the storage-class value for a symbol. This directive may only be used inside a `.def`/`.endef` pair.5https://sourceware.org/binutils/docs-2.41/as/Scl.html.cfi_undefined.CFI_UNDEFINED.cfi_undefined *register*GFrom now on the previous value of *register* can't be restored anymore.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.desc.DESC.desc *symbol, abs-expression*vThis directive sets the descriptor of the symbol (see Symbol Attributes) to the low 16 bits of an absolute expression.6https://sourceware.org/binutils/docs-2.41/as/Desc.html.equiv.EQUIV.equiv *symbol, expression*~The `.equiv` directive is like `.equ` and `.set`, except that the assembler will signal an error if symbol is already defined.7https://sourceware.org/binutils/docs-2.41/as/Equiv.html .string64 .STRING64.string64* *"str"qCopy the characters in *str* to the object file. Each 8-bit character from str is copied and expanded to 64 bits.8https://sourceware.org/binutils/docs-2.41/as/String.html .string32 .STRING32.string32* *"str"qCopy the characters in *str* to the object file. Each 8-bit character from str is copied and expanded to 32 bits.8https://sourceware.org/binutils/docs-2.41/as/String.html.gnu_attribute.GNU_ATTRIBUTE.gnu_attribute *tag, value*CRecord a GNU object attribute for this file. See Object Attributes.Chttps://sourceware.org/binutils/docs-2.41/as/Gnu_005fattribute.html.loc.LOC&.loc *fileno lineno [column] [options]When emitting DWARF2 line number information, the `.loc` directive will add a row to the `.debug_line` line number matrix corresponding to the immediately following assembly instruction.5https://sourceware.org/binutils/docs-2.41/as/Loc.html.weakref.WEAKREF.weakref *alias, target*This directive creates an alias to the target symbol that enables the symbol to be referenced with weak-symbol semantics, but without actually making it weak.9https://sourceware.org/binutils/docs-2.41/as/Weakref.html.bss.BSS.bss *subsection*W`.bss` tells `as` to assemble the following statements onto the end of the bss section.5https://sourceware.org/binutils/docs-2.41/as/Bss.html.ifgt.IFGT.ifgt *absolute expression*MAssembles the following section of code if the argument is greater than zero.4https://sourceware.org/binutils/docs-2.41/as/If.html.error.ERROR.error *"string"{Similarly to `.err`, this directive emits an error, but you can specify a string that will be emitted as the error message.7https://sourceware.org/binutils/docs-2.41/as/Error.html.size.SIZE.size *name, expression*.size *expression*This directive is used to set the size associated with a symbol. For ELF targets, the `.size` directive accepts two arguments. For COFF targets, the .size directive is only permitted inside `.def`/`.endef` pairs and only accepts one argument.6https://sourceware.org/binutils/docs-2.41/as/Size.html.nop.NOP .nop *[size]*(This directive emits no-op instructions.5https://sourceware.org/binutils/docs-2.41/as/Nop.html.stabd.STABD.stabd *type , other , desc*Emits symbols for use by symbolic debuggers. The "name" of the symbol generated is not even an empty string. It is a null pointer, for compatibility.6https://sourceware.org/binutils/docs-2.41/as/Stab.html .cfi_endproc .CFI_ENDPROC .cfi_endproc`.cfi_endproc` is used at the end of a function where it closes its unwind entry previously opened by `.cfi_startproc`, and emits it to `.eh_frame`.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html .cfi_offset .CFI_OFFSET.cfi_offset *offset, register*BPrevious value of *register* is saved at offset *offset* from CFA.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.purgem.PURGEM.purgem *name*_Undefine the macro *name*, so that later uses of the string will not be expanded. See `.macro`.8https://sourceware.org/binutils/docs-2.41/as/Purgem.html.stabs.STABS,.stabs *string, type , other , desc , value*KEmits symbols for use by symbolic debuggers. All five fields are specified.6https://sourceware.org/binutils/docs-2.41/as/Stab.html .cfi_register .CFI_REGISTER$.cfi_register *register1, register2*?Previous value of *register1* is saved in register *register2*.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.word.WORD.word *expression*UThis directive expects zero or more expressions, of any section, separated by commas.6https://sourceware.org/binutils/docs-2.41/as/Word.html.attach_to_group.ATTACH_TO_GROUP.attach_to_group *name*0Attaches the current section to the named group.Ihttps://sourceware.org/binutils/docs-2.41/as/Attach_005fto_005fgroup.html.cfi_def_cfa_offset.CFI_DEF_CFA_OFFSET.cfi_def_cfa_offset *offset*f`.cfi_def_cfa_offset` modifies a rule for computing CFA. Register remains the same, but offset is new.@https://sourceware.org/binutils/docs-2.41/as/CFI-directives.html.8byte.8BYTE$.8byte *expression [, expression]\**#Each expression is evaluated in turn and placed in the next eight bytes of the current output section, using the endian model of the target. If an expression will not fit in eight bytes, a warning message is displayed and the least significant two bytes of the expression’s value are used.7https://sourceware.org/binutils/docs-2.41/as/8byte.html