| 1 | @c Copyright (C) 2006-2017 Free Software Foundation, Inc. |
| 2 | @c This is part of the GAS manual. |
| 3 | @c For copying conditions, see the file as.texinfo. |
| 4 | |
| 5 | @page |
| 6 | @node xc16x-Dependent |
| 7 | @chapter Infineon xc16x Dependent Features |
| 8 | |
| 9 | @cindex xc16x support |
| 10 | @menu |
| 11 | * xc16x Directives:: xc16x Machine Directives |
| 12 | * xc16x Syntax:: xc16x Syntax |
| 13 | @end menu |
| 14 | |
| 15 | @node xc16x Directives |
| 16 | @section xc16x Machine Directives |
| 17 | |
| 18 | The xc16x version of the assembler supports the following machine |
| 19 | directives: |
| 20 | |
| 21 | @table @code |
| 22 | @cindex @code{align} directive, xc16x |
| 23 | @item .align |
| 24 | This directive aligns the section program counter on the next 2-byte |
| 25 | boundary. |
| 26 | |
| 27 | |
| 28 | @cindex @code{byte} directive, xc16x |
| 29 | @item .byte @var{expr} |
| 30 | This directive assembles a half-word (8-bit) constant. |
| 31 | |
| 32 | @cindex @code{word} directive, xc16x |
| 33 | @item .word @var{expr} |
| 34 | This assembles a word (16-bit) constant. |
| 35 | |
| 36 | @cindex @code{ascii} directive, xc16x |
| 37 | @item .ascii "@var{ascii}" |
| 38 | This directive used for copying @var{str} into the object file. |
| 39 | The string is terminated with a null byte. |
| 40 | |
| 41 | @cindex @code{set} directive, xc16x |
| 42 | @item .set @var{symbol}, @var{value} |
| 43 | This directive creates a symbol named @var{symbol} which is an alias for |
| 44 | another symbol (possibly not yet defined). This should not be confused |
| 45 | with the mnemonic @code{set}, which is a legitimate xc16x instruction. |
| 46 | |
| 47 | |
| 48 | |
| 49 | @cindex @code{bss} directive, xc16x |
| 50 | @item .bss @var{symbol}, @var{length} |
| 51 | Reserve @var{length} bytes in the bss section for a local @var{symbol}, |
| 52 | aligned to the power of two specified by @var{align}. @var{length} and |
| 53 | @var{align} must be positive absolute expressions. This directive |
| 54 | differs from @samp{.lcomm} only in that it permits you to specify |
| 55 | an alignment. |
| 56 | @end table |
| 57 | |
| 58 | @node xc16x Syntax |
| 59 | @section xc16x Syntax |
| 60 | @menu |
| 61 | * xc16x-Chars:: Special Characters |
| 62 | @end menu |
| 63 | |
| 64 | @node xc16x-Chars |
| 65 | @subsection Special Characters |
| 66 | |
| 67 | @cindex line comment character, xc16x |
| 68 | @cindex xc16c line comment character |
| 69 | The presence of a @samp{;} appearing anywhere on a line indicates the |
| 70 | start of a comment that extends to the end of that line. |
| 71 | |
| 72 | If a @samp{#} appears as the first character of a line then the whole |
| 73 | line is treated as a comment, but in this case the line can also be a |
| 74 | logical line number directive (@pxref{Comments}) or a preprocessor |
| 75 | control command (@pxref{Preprocessing}). |
| 76 | |
| 77 | @cindex line separator, xc16x |
| 78 | @cindex statement separator, xc16x |
| 79 | @cindex xc16x line separator |
| 80 | The XC16X assembler does not support a line separator character. |