summaryrefslogtreecommitdiffstats
path: root/misc/syntax/assembler.syntax
blob: 0187c72914794a69be405c52011ac111e38a0065 (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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
#
# NASM,WASM,TASM,MASM and GAS x86 syntax highlight
# // Mike Gorchak
# // Andres Farfan 2012
#

caseinsensitive

context default lightgray

# NASM directives
    keyword whole BITS white
    keyword whole SECTION white
    keyword whole SEGMENT white
    keyword whole ABSOLUTE white
    keyword whole EXTERN white
    keyword whole GLOBAL white
    keyword whole COMMON white
    keyword whole CPU white

# NASM, WASM, TASM, MASM and common modifiers
    keyword whole ALIGN white
    keyword whole ALIGNB white
    keyword whole STRUC white
    keyword whole ENDSTRUC white
    keyword whole ISTRUC white
    keyword whole IEND white
    keyword whole AT white
    keyword whole __FILE__ white
    keyword whole __LINE__ white
    keyword whole __NASM_VER__ white
    keyword whole __NASM_VERSION_ID__ white
    keyword whole __NASM_MAJOR__ white
    keyword whole __NASM_MINOR__ white
    keyword whole __NASM_SUBMINOR__ white
    keyword whole __NASM_PATCHLEVEL__ white
    keyword whole __SECT__ white
    keyword whole STRICT white
    keyword whole SEG white
    keyword whole WRT white
    keyword whole NOSPLIT white
    keyword whole BYTE white
    keyword whole WORD white
    keyword whole DWORD white
    keyword whole QWORD white
    keyword whole TWORD white

# Pseudo instructions
    keyword whole ORG white
    keyword whole EQU white
    keyword whole DB white
    keyword whole DW white
    keyword whole DD white
    keyword whole DQ white
    keyword whole DT white
    keyword whole RESB white
    keyword whole RESW white
    keyword whole RESD white
    keyword whole RESQ white
    keyword whole REST white
    keyword whole INCBIN white
    keyword whole TIMES white

# GAS specific
    keyword whole .string white
    keyword whole .section white
    keyword whole .align white
    keyword whole .type white
    keyword whole .size white
    keyword whole .comm white
    keyword whole .ident white
    keyword whole .globl white
    keyword whole .rodata brightblue
    keyword whole .data brightblue
    keyword whole .text brightblue
    keyword whole .bss brightblue

# NASM/TASM Macroses
    keyword whole %ifdef brightred
    keyword whole %define brightred
    keyword whole %else brightred
    keyword whole %elif brightred
    keyword whole %endif brightred
    keyword whole %macro brightred
    keyword whole %endmacro brightred
    keyword whole %rep brightred
    keyword whole %repl brightred
    keyword whole %strlen brightred
    keyword whole %substr brightred
    keyword whole %arg brightred
    keyword whole %stacksize brightred
    keyword whole %local brightred
    keyword whole %push brightred
    keyword whole %pop brightred
    keyword whole %line brightred
    keyword whole %\! brightred
    keyword whole %\+ brightred

# Generic 16-bit registers set
    keyword whole %al brightmagenta
    keyword whole %bl brightmagenta
    keyword whole %cl brightmagenta
    keyword whole %dl brightmagenta
    keyword whole %ah brightmagenta
    keyword whole %bh brightmagenta
    keyword whole %ch brightmagenta
    keyword whole %dh brightmagenta
    keyword whole %ax brightmagenta
    keyword whole %bx brightmagenta
    keyword whole %cx brightmagenta
    keyword whole %dx brightmagenta
    keyword whole %si brightmagenta
    keyword whole %di brightmagenta
    keyword whole %bp brightmagenta
    keyword whole %sp brightmagenta
    keyword whole %es brightmagenta
    keyword whole %cs brightmagenta
    keyword whole %ds brightmagenta

    keyword whole AL brightmagenta
    keyword whole BL brightmagenta
    keyword whole CL brightmagenta
    keyword whole DL brightmagenta
    keyword whole AH brightmagenta
    keyword whole BH brightmagenta
    keyword whole CH brightmagenta
    keyword whole DH brightmagenta
    keyword whole AX brightmagenta
    keyword whole BX brightmagenta
    keyword whole CX brightmagenta
    keyword whole DX brightmagenta
    keyword whole SI brightmagenta
    keyword whole DI brightmagenta
    keyword whole BP brightmagenta
    keyword whole SP brightmagenta
    keyword whole ES brightmagenta
    keyword whole CS brightmagenta
    keyword whole DS brightmagenta

# Generic 32-bit registers set
    keyword whole %eax brightmagenta
    keyword whole %ebx brightmagenta
    keyword whole %ecx brightmagenta
    keyword whole %edx brightmagenta
    keyword whole %esi brightmagenta
    keyword whole %edi brightmagenta
    keyword whole %ebp brightmagenta
    keyword whole %esp brightmagenta
    keyword whole %fs brightmagenta
    keyword whole %gs brightmagenta

    keyword whole EAX brightmagenta
    keyword whole EBX brightmagenta
    keyword whole ECX brightmagenta
    keyword whole EDX brightmagenta
    keyword whole ESI brightmagenta
    keyword whole EDI brightmagenta
    keyword whole EBP brightmagenta
    keyword whole ESP brightmagenta
    keyword whole FS brightmagenta
    keyword whole GS brightmagenta

    keyword whole CR0 magenta
    keyword whole CR1 magenta
    keyword whole CR2 magenta
    keyword whole CR3 magenta
    keyword whole DR0 magenta
    keyword whole DR1 magenta
    keyword whole DR3 magenta
    keyword whole DR4 magenta
    keyword whole DR5 magenta
    keyword whole DR6 magenta
    keyword whole DR7 magenta
    keyword whole TR0 magenta
    keyword whole TR1 magenta
    keyword whole TR2 magenta
    keyword whole TR3 magenta
    keyword whole TR4 magenta
    keyword whole TR5 magenta
    keyword whole TR6 magenta
    keyword whole TR7 magenta
    keyword whole TR8 magenta
    keyword whole TR9 magenta
    keyword whole TR10 magenta
    keyword whole TR11 magenta

# Generic AMD64 registers set
    keyword whole %rax brightmagenta
    keyword whole %rbx brightmagenta
    keyword whole %rcx brightmagenta
    keyword whole %rdx brightmagenta
    keyword whole %rsi brightmagenta
    keyword whole %rdi brightmagenta
    keyword whole %rbp brightmagenta
    keyword whole %rsp brightmagenta
    keyword whole %r8 brightmagenta
    keyword whole %r9 brightmagenta
    keyword whole %r10 brightmagenta
    keyword whole %r11 brightmagenta
    keyword whole %r12 brightmagenta
    keyword whole %r13 brightmagenta
    keyword whole %r14 brightmagenta
    keyword whole %r15 brightmagenta

    keyword whole RAX brightmagenta
    keyword whole RBX brightmagenta
    keyword whole RCX brightmagenta
    keyword whole RDX brightmagenta
    keyword whole RSI brightmagenta
    keyword whole RDI brightmagenta
    keyword whole RBP brightmagenta
    keyword whole RSP brightmagenta
    keyword whole R8 brightmagenta
    keyword whole R9 brightmagenta
    keyword whole R10 brightmagenta
    keyword whole R11 brightmagenta
    keyword whole R12 brightmagenta
    keyword whole R13 brightmagenta
    keyword whole R14 brightmagenta
    keyword whole R15 brightmagenta

#AMD64 32-bit registers. 64-bit mode
    keyword whole %r8d brightmagenta
    keyword whole %r9d brightmagenta
    keyword whole %r10d brightmagenta
    keyword whole %r11d brightmagenta
    keyword whole %r12d brightmagenta
    keyword whole %r13d brightmagenta
    keyword whole %r14d brightmagenta
    keyword whole %r15d brightmagenta

    keyword whole R8D brightmagenta
    keyword whole R9D brightmagenta
    keyword whole R10D brightmagenta
    keyword whole R11D brightmagenta
    keyword whole R12D brightmagenta
    keyword whole R13D brightmagenta
    keyword whole R14D brightmagenta
    keyword whole R15D brightmagenta

#AMD64 16-bit registers. 64-bit mode
    keyword whole %r8w brightmagenta
    keyword whole %r9w brightmagenta
    keyword whole %r10w brightmagenta
    keyword whole %r11w brightmagenta
    keyword whole %r12w brightmagenta
    keyword whole %r13w brightmagenta
    keyword whole %r14w brightmagenta
    keyword whole %r15w brightmagenta

    keyword whole R8W brightmagenta
    keyword whole R9W brightmagenta
    keyword whole R10W brightmagenta
    keyword whole R11W brightmagenta
    keyword whole R12W brightmagenta
    keyword whole R13W brightmagenta
    keyword whole R14W brightmagenta
    keyword whole R15W brightmagenta

#AMD64 8-bit registers. 64-bit mode
    keyword whole %sil brightmagenta
    keyword whole %dil brightmagenta
    keyword whole %bpl brightmagenta
    keyword whole %spl brightmagenta
    keyword whole %r8b brightmagenta
    keyword whole %r9b brightmagenta
    keyword whole %r10b brightmagenta
    keyword whole %r11b brightmagenta
    keyword whole %r12b brightmagenta
    keyword whole %r13b brightmagenta
    keyword whole %r14b brightmagenta
    keyword whole %r15b brightmagenta

    keyword whole SIL brightmagenta
    keyword whole DIL brightmagenta
    keyword whole BPL brightmagenta
    keyword whole SPL brightmagenta
    keyword whole R8B brightmagenta
    keyword whole R9B brightmagenta
    keyword whole R10B brightmagenta
    keyword whole R11B brightmagenta
    keyword whole R12B brightmagenta
    keyword whole R13B brightmagenta
    keyword whole R14B brightmagenta
    keyword whole R15B brightmagenta

#AMD64 System registers. 64-bit mode
    keyword whole CR8 magenta

#AMD64 SSE Registers. 64-bit mode
    keyword whole %xmm8 brightcyan
    keyword whole %xmm9 brightcyan
    keyword whole %xmm10 brightcyan
    keyword whole %xmm11 brightcyan
    keyword whole %xmm12 brightcyan
    keyword whole %xmm13 brightcyan
    keyword whole %xmm14 brightcyan
    keyword whole %xmm15 brightcyan

    keyword whole xmm8 brightcyan
    keyword whole xmm9 brightcyan
    keyword whole xmm10 brightcyan
    keyword whole xmm11 brightcyan
    keyword whole xmm12 brightcyan
    keyword whole xmm13 brightcyan
    keyword whole xmm14 brightcyan
    keyword whole xmm15 brightcyan

# FPU registers set
    keyword whole st0 brightcyan
    keyword whole st1 brightcyan
    keyword whole st2 brightcyan
    keyword whole st3 brightcyan
    keyword whole st4 brightcyan
    keyword whole st5 brightcyan
    keyword whole st6 brightcyan
    keyword whole st7 brightcyan
    keyword whole %st0 brightcyan
    keyword whole %st1 brightcyan
    keyword whole %st2 brightcyan
    keyword whole %st3 brightcyan
    keyword whole %st4 brightcyan
    keyword whole %st5 brightcyan
    keyword whole %st6 brightcyan
    keyword whole %st7 brightcyan

# MMX/3DNOW registers set
    keyword whole mm0 brightcyan
    keyword whole mm1 brightcyan
    keyword whole mm2 brightcyan
    keyword whole mm3 brightcyan
    keyword whole mm4 brightcyan
    keyword whole mm5 brightcyan
    keyword whole mm6 brightcyan
    keyword whole mm7 brightcyan
    keyword whole %mm0 brightcyan
    keyword whole %mm1 brightcyan
    keyword whole %mm2 brightcyan
    keyword whole %mm3 brightcyan
    keyword whole %mm4 brightcyan
    keyword whole %mm5 brightcyan
    keyword whole %mm6 brightcyan
    keyword whole %mm7 brightcyan

# SSE registers set
    keyword whole xmm0 brightcyan
    keyword whole xmm1 brightcyan
    keyword whole xmm2 brightcyan
    keyword whole xmm3 brightcyan
    keyword whole xmm4 brightcyan
    keyword whole xmm5 brightcyan
    keyword whole xmm6 brightcyan
    keyword whole xmm7 brightcyan
    keyword whole %xmm0 brightcyan
    keyword whole %xmm1 brightcyan
    keyword whole %xmm2 brightcyan
    keyword whole %xmm3 brightcyan
    keyword whole %xmm4 brightcyan
    keyword whole %xmm5 brightcyan
    keyword whole %xmm6 brightcyan
    keyword whole %xmm7 brightcyan

# Common symbols
    keyword ; brown
    keyword ! brown
    keyword /\* brown
    keyword \*/ brown
    keyword [ white
    keyword ] white
    keyword , white
    keyword \+ white
    keyword - white
    keyword . white
    keyword ( white
    keyword ) white
    keyword : white
    keyword @ white
    keyword >> white
    keyword << white
    keyword % white
    keyword \\ white
    keyword / white
    keyword // white
    keyword ~ white
    keyword ^ white
    keyword & white
    keyword \* white
    keyword | white
    keyword $ brightgreen
    keyword $$ brightgreen
    keyword %% cyan

context " " green
context ' ' brightgreen
context exclusive ; \n brown
    spellcheck

context exclusive /\* \*/ brown
    spellcheck

context exclusive ! \n brown
    spellcheck