Home | History | Annotate | Line # | Download | only in doc
c-xstormy16.texi revision 1.1.1.9
      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