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