1 1.1.1.9 christos @c Copyright (C) 2010-2026 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.1.5 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.1.5 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.1.5 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