aboutsummaryrefslogtreecommitdiff
path: root/gas/doc/c-msp430.texi
blob: 00503598538d6cdc22d6e02fde9f71e5a927aaeb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
@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.