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