]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/assembly-mcs51.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / assembly-mcs51.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <!--
6         MCS51 Assembly mode by Mirco Bova (mirco.bova@libero.it)
7
8         - KEIL syntax
9 -->
10
11 <MODE>
12
13         <PROPS>
14                 <PROPERTY NAME="lineComment" VALUE=";" />
15                 <PROPERTY NAME="contextInsensitive" VALUE="true"/>
16         </PROPS>
17
18         <RULES HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="TRUE">
19                 <EOL_SPAN TYPE="COMMENT1">;</EOL_SPAN>
20
21                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
22                         <BEGIN>'</BEGIN>
23                         <END>'</END>
24                 </SPAN>
25
26                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
27                         <BEGIN>"</BEGIN>
28                         <END>"</END>
29                 </SPAN>
30
31                 <!-- NASM: label inside a macro -->
32                 <MARK_FOLLOWING TYPE="LABEL" MATCH_TYPE="OPERATOR"
33                         AT_LINE_START="TRUE">%%</MARK_FOLLOWING>
34
35                 <MARK_FOLLOWING TYPE="KEYWORD2" AT_LINE_START="TRUE">$</MARK_FOLLOWING>
36
37                 <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR"
38                         AT_LINE_START="TRUE">:</MARK_PREVIOUS>
39
40                 <SEQ TYPE="NULL">,</SEQ>
41                 <SEQ TYPE="NULL">:</SEQ>
42                 <SEQ TYPE="NULL">(</SEQ>
43                 <SEQ TYPE="NULL">)</SEQ>
44                 <SEQ TYPE="NULL">]</SEQ>
45                 <SEQ TYPE="NULL">[</SEQ>
46                 <SEQ TYPE="NULL">$</SEQ>
47
48                 <SEQ TYPE="OPERATOR">+</SEQ>
49                 <SEQ TYPE="OPERATOR">-</SEQ>
50                 <SEQ TYPE="OPERATOR">/</SEQ>
51                 <SEQ TYPE="OPERATOR">*</SEQ>
52                 <SEQ TYPE="OPERATOR">%</SEQ>
53
54                 <SEQ TYPE="OPERATOR">|</SEQ>
55                 <SEQ TYPE="OPERATOR">^</SEQ>
56                 <SEQ TYPE="OPERATOR">&amp;</SEQ>
57                 <SEQ TYPE="OPERATOR">~</SEQ>
58                 <SEQ TYPE="OPERATOR">!</SEQ>
59
60                 <SEQ TYPE="OPERATOR">=</SEQ>
61                 <SEQ TYPE="OPERATOR">&lt;</SEQ>
62                 <SEQ TYPE="OPERATOR">&gt;</SEQ>
63
64                 <KEYWORDS>
65                         <KEYWORD1>MOD</KEYWORD1>
66                         <KEYWORD1>SHR</KEYWORD1>
67                         <KEYWORD1>SHL</KEYWORD1>
68                         <KEYWORD1>NOT</KEYWORD1>
69                         <KEYWORD1>AND</KEYWORD1>
70                         <KEYWORD1>OR</KEYWORD1>
71                         <KEYWORD1>XOR</KEYWORD1>
72                         <KEYWORD1>HIGH</KEYWORD1>
73                         <KEYWORD1>LOW</KEYWORD1>
74                         <KEYWORD1>LT</KEYWORD1>
75                         <KEYWORD1>LE</KEYWORD1>
76                         <KEYWORD1>NE</KEYWORD1>
77                         <KEYWORD1>EQ</KEYWORD1>
78                         <KEYWORD1>GE</KEYWORD1>
79                         <KEYWORD1>GT</KEYWORD1>
80                         <KEYWORD1>DPTR</KEYWORD1>
81                         <KEYWORD1>PC</KEYWORD1>
82                         <KEYWORD1>EQU</KEYWORD1>
83                         <KEYWORD1>SET</KEYWORD1>
84                         <KEYWORD1>NUMBER</KEYWORD1>
85                         <KEYWORD1>CSEG</KEYWORD1>
86                         <KEYWORD1>XSEG</KEYWORD1>
87                         <KEYWORD1>DSEG</KEYWORD1>
88                         <KEYWORD1>ISEG</KEYWORD1>
89                         <KEYWORD1>BSEG</KEYWORD1>
90                         <KEYWORD1>RSEG</KEYWORD1>
91                         <KEYWORD1>NUL</KEYWORD1>
92                         <KEYWORD1>DB</KEYWORD1>
93                         <KEYWORD1>DW</KEYWORD1>
94                         <KEYWORD1>DWR</KEYWORD1>
95                         <KEYWORD1>DS</KEYWORD1>
96                         <KEYWORD1>DBIT</KEYWORD1>
97                         <KEYWORD1>ORG</KEYWORD1>
98                         <KEYWORD1>USING</KEYWORD1>
99                         <KEYWORD1>END</KEYWORD1>
100                         <KEYWORD1>NAME</KEYWORD1>
101                         <KEYWORD1>PUBLIC</KEYWORD1>
102                         <KEYWORD1>EXTRN</KEYWORD1>
103                         <KEYWORD1>SEGMENT</KEYWORD1>
104                         <KEYWORD1>UNIT</KEYWORD1>
105                         <KEYWORD1>BITADDRESSABLE</KEYWORD1>
106                         <KEYWORD1>INPAGE</KEYWORD1>
107                         <KEYWORD1>INBLOCK</KEYWORD1>
108                         <KEYWORD1>PAGE</KEYWORD1>
109                         <KEYWORD1>OVERLAYABLE</KEYWORD1>
110                         <KEYWORD1>AT</KEYWORD1>
111                         <KEYWORD1>STACKLEN</KEYWORD1>
112                         <KEYWORD1>SBIT</KEYWORD1>
113                         <KEYWORD1>SFR</KEYWORD1>
114                         <KEYWORD1>SFR16</KEYWORD1>
115                         <KEYWORD1>__ERROR__</KEYWORD1>
116                         <KEYWORD1>ACALL</KEYWORD1>
117                         <KEYWORD1>ADD</KEYWORD1>
118                         <KEYWORD1>ADDC</KEYWORD1>
119                         <KEYWORD1>AJMP</KEYWORD1>
120                         <KEYWORD1>ANL</KEYWORD1>
121                         <KEYWORD1>CALL</KEYWORD1>
122                         <KEYWORD1>CJNE</KEYWORD1>
123                         <KEYWORD1>CLR</KEYWORD1>
124                         <KEYWORD1>CPL</KEYWORD1>
125                         <KEYWORD1>DA</KEYWORD1>
126                         <KEYWORD1>DEC</KEYWORD1>
127                         <KEYWORD1>DIV</KEYWORD1>
128                         <KEYWORD1>DJNZ</KEYWORD1>
129                         <KEYWORD1>INC</KEYWORD1>
130                         <KEYWORD1>JB</KEYWORD1>
131                         <KEYWORD1>JBC</KEYWORD1>
132                         <KEYWORD1>JC</KEYWORD1>
133                         <KEYWORD1>JMP</KEYWORD1>
134                         <KEYWORD1>JNB</KEYWORD1>
135                         <KEYWORD1>JNC</KEYWORD1>
136                         <KEYWORD1>JNZ</KEYWORD1>
137                         <KEYWORD1>JZ</KEYWORD1>
138                         <KEYWORD1>LCALL</KEYWORD1>
139                         <KEYWORD1>LJMP</KEYWORD1>
140                         <KEYWORD1>MOV</KEYWORD1>
141                         <KEYWORD1>MOVC</KEYWORD1>
142                         <KEYWORD1>MOVX</KEYWORD1>
143                         <KEYWORD1>MUL</KEYWORD1>
144                         <KEYWORD1>NOP</KEYWORD1>
145                         <KEYWORD1>ORL</KEYWORD1>
146                         <KEYWORD1>POP</KEYWORD1>
147                         <KEYWORD1>PUSH</KEYWORD1>
148                         <KEYWORD1>RET</KEYWORD1>
149                         <KEYWORD1>RETI</KEYWORD1>
150                         <KEYWORD1>RL</KEYWORD1>
151                         <KEYWORD1>RLC</KEYWORD1>
152                         <KEYWORD1>RR</KEYWORD1>
153                         <KEYWORD1>RRC</KEYWORD1>
154                         <KEYWORD1>SETB</KEYWORD1>
155                         <KEYWORD1>SJMP</KEYWORD1>
156                         <KEYWORD1>SUBB</KEYWORD1>
157                         <KEYWORD1>SWAP</KEYWORD1>
158                         <KEYWORD1>XCH</KEYWORD1>
159                         <KEYWORD1>XCHD</KEYWORD1>
160                         <KEYWORD1>XRL</KEYWORD1>
161                         <KEYWORD1>IF</KEYWORD1>
162                         <KEYWORD1>ELSEIF</KEYWORD1>
163                         <KEYWORD1>ELSE</KEYWORD1>
164                         <KEYWORD1>ENDIF</KEYWORD1>
165                         <KEYWORD1>MACRO</KEYWORD1>
166                         <KEYWORD1>REPT</KEYWORD1>
167                         <KEYWORD1>IRP</KEYWORD1>
168                         <KEYWORD1>IRPC</KEYWORD1>
169                         <KEYWORD1>ENDM</KEYWORD1>
170                         <KEYWORD1>EXITM</KEYWORD1>
171                         <KEYWORD1>LOCAL</KEYWORD1>
172                         <KEYWORD1>DPTX</KEYWORD1>
173                         <KEYWORD1>DPTN</KEYWORD1>
174                         <KEYWORD1>DPTR8</KEYWORD1>
175                         <KEYWORD1>DPTR16</KEYWORD1>
176                         <KEYWORD1>WR0</KEYWORD1>
177                         <KEYWORD1>WR2</KEYWORD1>
178                         <KEYWORD1>WR4</KEYWORD1>
179                         <KEYWORD1>WR6</KEYWORD1>
180                         <KEYWORD1>DR0</KEYWORD1>
181                         <KEYWORD1>DR4</KEYWORD1>
182                         <KEYWORD1>RJC</KEYWORD1>
183                         <KEYWORD1>RJNC</KEYWORD1>
184                         <KEYWORD1>RJZ</KEYWORD1>
185                         <KEYWORD1>RJNZ</KEYWORD1>
186                         <KEYWORD1>JMPI</KEYWORD1>
187                         <KEYWORD1>MOVB</KEYWORD1>
188                         <KEYWORD1>PUSHA</KEYWORD1>
189                         <KEYWORD1>POPA</KEYWORD1>
190                         <KEYWORD1>SUB</KEYWORD1>
191                         <KEYWORD1>ADDM</KEYWORD1>
192                         <KEYWORD1>SUBM</KEYWORD1>
193                         <KEYWORD1>SLEEP</KEYWORD1>
194                         <KEYWORD1>SYNC</KEYWORD1>
195                         <KEYWORD1>DEFINE</KEYWORD1>
196                         <KEYWORD1>SUBSTR</KEYWORD1>
197                         <KEYWORD1>THEN</KEYWORD1>
198                         <KEYWORD1>LEN</KEYWORD1>
199                         <KEYWORD1>EQS</KEYWORD1>
200                         <KEYWORD1>IF</KEYWORD1>
201                         <KEYWORD1>FI</KEYWORD1>
202
203                         <KEYWORD2>$IF</KEYWORD2>
204                         <KEYWORD2>$ELSEIF</KEYWORD2>
205                         <KEYWORD2>$ELSE</KEYWORD2>
206                         <KEYWORD2>$ENDIF</KEYWORD2>
207                         <KEYWORD2>$MOD167</KEYWORD2>
208                         <KEYWORD2>$CASE</KEYWORD2>
209                         <KEYWORD2>$SEGMENTED</KEYWORD2>
210                         <KEYWORD2>$INCLUDE</KEYWORD2>
211
212                         <!-- memory types -->
213                         <KEYWORD2>CODE</KEYWORD2>
214                         <KEYWORD2>XDATA</KEYWORD2>
215                         <KEYWORD2>DATA</KEYWORD2>
216                         <KEYWORD2>IDATA</KEYWORD2>
217                         <KEYWORD2>BIT</KEYWORD2>
218
219                         <!-- Registers -->
220                         <KEYWORD3>R0</KEYWORD3>
221                         <KEYWORD3>R1</KEYWORD3>
222                         <KEYWORD3>R2</KEYWORD3>
223                         <KEYWORD3>R3</KEYWORD3>
224                         <KEYWORD3>R4</KEYWORD3>
225                         <KEYWORD3>R5</KEYWORD3>
226                         <KEYWORD3>R6</KEYWORD3>
227                         <KEYWORD3>R7</KEYWORD3>
228
229                         <KEYWORD3>SP</KEYWORD3>
230                         <KEYWORD3>A</KEYWORD3>
231                         <KEYWORD3>C</KEYWORD3>
232                         <KEYWORD3>AB</KEYWORD3>
233
234                         <!-- Instructions -->
235
236                 </KEYWORDS>
237         </RULES>
238 </MODE>