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