@c Copyright 2002 Free Software Foundation, Inc. @c This is part of the GAS manual. @c For copying conditions, see the file as.texinfo. @ifset GENERIC @page @node MSP430-Dependent @chapter MSP 430 Dependent Features @end ifset @ifclear GENERIC @node Machine Dependencies @chapter MSP 430 Dependent Features @end ifclear @cindex MSP 430 support @cindex 430 support @menu * MSP430 Options:: Options * MSP430 Syntax:: Syntax * MSP430 Floating Point:: Floating Point * MSP430 Directives:: MSP 430 Machine Directives * MSP430 Opcodes:: Opcodes @end menu @node MSP430 Options @section Options @cindex MSP 430 options (none) @cindex options for MSP430 (none) @code{@value{AS}} has only -m flag which selects the mpu arch. Currently has no effect. @node MSP430 Syntax @section Syntax @menu * MSP430-Macros:: Macros * MSP430-Chars:: Special Characters * MSP430-Regs:: Register Names * MSP430-Ext:: Assembler Extensions @end menu @node MSP430-Macros @subsection Macros @cindex Macros, MSP 430 @cindex MSP 430 macros The macro syntax used on the MSP 430 is like that described in the MSP 430 Family Assembler Specification. Normal @code{@value{AS}} macros should still work. Additional built-in macros are: @table @code @item llo(exp) Extracts least significant word from 32-bit expression 'exp'. @item lhi(exp) Extracts most significant word from 32-bit expression 'exp'. @item hlo(exp) Extracts 3rd word from 64-bit expression 'exp'. @item hhi(exp) Extracts 4rd word from 64-bit expression 'exp'. @end table They normally being used as an immediate source operand. @smallexample mov #llo(1), r10 ; == mov #1, r10 mov #lhi(1), r10 ; == mov #0, r10 @end smallexample @node MSP430-Chars @subsection Special Characters @cindex line comment character, MSP 430 @cindex MSP 430 line comment character @samp{;} is the line comment character. @cindex identifiers, MSP 430 @cindex MSP 430 identifiers The character @samp{$} in jump instructions indicates current location and implemented only for TI syntax compatibility. @node MSP430-Regs @subsection Register Names @cindex MSP 430 register names @cindex register names, MSP 430 General-purpose registers are represented by predefined symbols of the form @samp{r@var{N}} (for global registers), where @var{N} represents a number between @code{0} and @code{15}. The leading letters may be in either upper or lower case; for example, @samp{r13} and @samp{R7} are both valid register names. @cindex special purpose registers, MSP 430 Register names @samp{PC}, @samp{SP} and @samp{SR} cannot be used as register names and will be treated as variables. Use @samp{r0}, @samp{r1}, and @samp{r2} instead. @node MSP430-Ext @subsection Assembler Extensions @cindex MSP430 Assembler Extensions @table @code @item @@rN As destination operand being treated as @samp{0(rn)} @item 0(rN) As source operand being treated as @samp{@@rn} @item jCOND +N Skips next N bytes followed by jump instruction and equivalent to @samp{jCOND $+N+2} @end table @node MSP430 Floating Point @section Floating Point @cindex floating point, MSP 430 (@sc{ieee}) @cindex MSP 430 floating point (@sc{ieee}) The MSP 430 family uses @sc{ieee} 32-bit floating-point numbers. @node MSP430 Directives @section MSP 430 Machine Directives @cindex machine directives, MSP 430 @cindex MSP 430 machine directives @table @code @cindex @code{file} directive, MSP 430 @item .file This directive is ignored; it is accepted for compatibility with other MSP 430 assemblers. @quotation @emph{Warning:} in other versions of the @sc{gnu} assembler, @code{.file} is used for the directive called @code{.app-file} in the MSP 430 support. @end quotation @cindex @code{line} directive, MSP 430 @item .line This directive is ignored; it is accepted for compatibility with other MSP 430 assemblers. @cindex @code{sect} directive, MSP 430 @item .arch Currently this directive is ignored; it is accepted for compatibility with other MSP 430 assemblers. @end table @node MSP430 Opcodes @section Opcodes @cindex MSP 430 opcodes @cindex opcodes for MSP 430 @code{@value{AS}} implements all the standard MSP 430 opcodes. No additional pseudo-instructions are needed on this family. For information on the 430 machine instruction set, see @cite{MSP430 User's Manual, document slau049b}, Texas Instrument, Inc.