Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

@c Copyright (C) 2006-2020 Free Software Foundation, Inc.
@c This is part of the GAS manual.
@c For copying conditions, see the file as.texinfo.

@page
@node xc16x-Dependent
@chapter Infineon xc16x Dependent Features

@cindex xc16x support
@menu
* xc16x Directives::     xc16x Machine Directives
* xc16x Syntax::         xc16x Syntax
@end menu

@node xc16x Directives
@section xc16x Machine Directives

The xc16x version of the assembler supports the following machine
directives:

@table @code
@cindex @code{align} directive, xc16x
@item .align
This directive aligns the section program counter on the next 2-byte
boundary.


@cindex @code{byte} directive, xc16x
@item .byte @var{expr}
This directive assembles a half-word (8-bit) constant.

@cindex @code{word} directive, xc16x
@item .word @var{expr}
This assembles a word (16-bit) constant.

@cindex @code{ascii} directive, xc16x
@item .ascii "@var{ascii}"
This directive used for copying @var{str} into the object file.
The string is terminated with a null byte.

@cindex @code{set} directive, xc16x
@item .set @var{symbol}, @var{value}
This directive creates a symbol named @var{symbol} which is an alias for
another symbol (possibly not yet defined).  This should not be confused
with the mnemonic @code{set}, which is a legitimate xc16x instruction.



@cindex @code{bss} directive, xc16x
@item .bss @var{symbol}, @var{length}
Reserve @var{length} bytes in the bss section for a local @var{symbol},
aligned to the power of two specified by @var{align}.  @var{length} and
@var{align} must be positive absolute expressions.  This directive
differs from @samp{.lcomm} only in that it permits you to specify
an alignment.
@end table

@node xc16x Syntax
@section xc16x Syntax
@menu
* xc16x-Chars::                Special Characters
@end menu

@node xc16x-Chars
@subsection Special Characters

@cindex line comment character, xc16x
@cindex xc16c line comment character
The presence of a @samp{;} appearing anywhere on a line indicates the
start of a comment that extends to the end of that line.

If a @samp{#} appears as the first character of a line then the whole
line is treated as a comment, but in this case the line can also be a
logical line number directive (@pxref{Comments}) or a preprocessor
control command (@pxref{Preprocessing}).

@cindex line separator, xc16x
@cindex statement separator, xc16x
@cindex xc16x line separator
The XC16X assembler does not support a line separator character.