mc/misc/syntax/assembler.syntax

403 lines
12 KiB
Plaintext
Raw Normal View History

#
# 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