1@c Copyright (C) 2010-2016 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@node XSTORMY16-Dependent
6@chapter XStormy16 Dependent Features
7
8@cindex XStormy16 support
9@menu
10* XStormy16 Syntax::               Syntax
11* XStormy16 Directives::           Machine Directives
12* XStormy16 Opcodes::              Pseudo-Opcodes
13@end menu
14
15@node XStormy16 Syntax
16@section Syntax
17@menu
18* XStormy16-Chars::                Special Characters
19@end menu
20
21@node XStormy16-Chars
22@subsection Special Characters
23
24@cindex line comment character, XStormy16
25@cindex XStormy16 line comment character
26@samp{#} is the line comment character.  If a @samp{#} appears as the
27first character of a line, the whole line is treated as a comment, but
28in this case the line can also be a logical line number directive
29(@pxref{Comments}) or a preprocessor control command
30(@pxref{Preprocessing}).
31
32@cindex comment character, XStormy16
33@cindex XStormy16 comment character
34A semicolon (@samp{;}) can be used to start a comment that extends
35from wherever the character appears on the line up to the end of the
36line.
37
38@cindex line separator, XStormy16
39@cindex statement separator, XStormy16
40@cindex XStormy16 line separator
41
42The @samp{|} character can be used to separate statements on the same
43line.
44
45
46@node XStormy16 Directives
47@section XStormy16 Machine Directives
48
49@cindex machine directives, XStormy16
50@cindex XStormy16 machine directives
51@table @code
52
53@cindex @code{16bit_pointers} directive, XStormy16
54@item .16bit_pointers
55Like the @option{--16bit-pointers} command line option this directive
56indicates that the assembly code makes use of 16-bit pointers.
57
58@cindex @code{32bit_pointers} directive, XStormy16
59@item .32bit_pointers
60Like the @option{--32bit-pointers} command line option this directive
61indicates that the assembly code makes use of 32-bit pointers.
62
63@cindex @code{.no_pointers} directive, XStormy16
64@item .no_pointers
65Like the @option{--no-pointers} command line option this directive
66indicates that the assembly code does not makes use pointers.
67
68@end table
69
70@node XStormy16 Opcodes
71@section XStormy16 Pseudo-Opcodes
72
73@cindex XStormy16 pseudo-opcodes
74@cindex pseudo-opcodes for XStormy16
75@code{@value{AS}} implements all the standard XStormy16 opcodes.
76
77@code{@value{AS}} also implements the following pseudo ops:
78
79@table @code
80
81@cindex @code{@@lo} pseudo-op, XStormy16
82@item @@lo()
83Computes the lower 16 bits of the given expression and stores it into
84the immediate operand field of the given instruction.  For example:
85
86    @samp{add r6, @@lo(here - there)}
87
88computes the difference between the address of labels 'here' and
89'there', takes the lower 16 bits of this difference and adds it to
90register 6.
91
92@cindex @code{@@hi} pseudo-op, XStormy16
93@item @@hi()
94Computes the higher 16 bits of the given expression and stores it into
95the immediate operand field of the given instruction.  For example:
96
97    @samp{addc r7, @@hi(here - there)}
98
99computes the difference between the address of labels 'here' and
100'there', takes the upper 16 bits of this difference, shifts it down 16
101bits and then adds it, along with the carry bit, to the value in
102register 7.
103
104@end table
105