home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / mac / vim55rt.sit / runtime / syntax / masm.vim < prev    next >
Encoding:
Text File  |  1999-09-25  |  5.4 KB  |  130 lines  |  [TEXT/VIM!]

  1. " Vim syntax file
  2. " Language:    Microsoft Assembler (80x86)
  3. " Maintainer:    Rob Brady <robb@datatone.com>
  4. " Last Change:    $Date: 1999/08/24 05:18:26 $
  5. " URL: http://www.datatone.com/~robb/vim/syntax/masm.vim
  6. " $Revision: 1.6 $
  7.  
  8. " Remove any old syntax stuff hanging around
  9. syn clear
  10.  
  11. syn case ignore
  12.  
  13.  
  14. " syn match masmType "\.word"
  15.  
  16. syn match masmIdentifier    "[a-z_$][a-z0-9_$]*"
  17. syn match masmLabel        "^[A-Z_$][A-Z0-9_$]*:"he=e-1
  18.  
  19. syn match masmDecimal        "\d*"
  20. syn match masmBinary        "[0-1]\+b"  "put this before hex or 0bfh dies!
  21. syn match masmHexadecimal    "[0-9]\x*h"
  22. syn match masmFloat        "[0-9]\x*r"
  23.  
  24. syn match masmComment        ";.*"
  25. syn region masmString        start=+'+ end=+'+
  26.  
  27. syn keyword masmOperator    AND BYTE PTR CODEPTR DATAPTR DUP DWORD EQ FAR
  28. syn keyword masmOperator    FWORD GE GT HIGH LARGE LE LOW LT MOD NE NEAR
  29. syn keyword masmOperator    NOT OFFSET OR PROC PWORD QWORD SEG SHORT TBYTE
  30. syn keyword masmOperator    TYPE WORD PARA
  31. syn keyword masmDirective    ALIGN ARG ASSUME CODESEG COMM
  32. syn keyword masmDirective    CONST DATASEG DB DD DF DISPLAY DOSSEG DP
  33. syn keyword masmDirective    DQ DT DW ELSE ELSEIF EMUL END ENDIF ENDM ENDP
  34. syn keyword masmDirective    ENDS ENUM EQU PROC PUBLIC PUBLICDLL RADIX
  35. syn keyword masmDirective    EXTRN FARDATA GLOBAL RECORD SEGMENT SMALLSTACK
  36. syn keyword masmDirective    GROUP IF IF1 IF2 IFB IFDEF IFDIF IFDIFI
  37. syn keyword masmDirective    IFE IFIDN IFIDNI IFNB IFNDEF INCLUDE INCLUDLIB
  38. syn keyword masmDirective    LABEL LARGESTACK STACK STRUC SUBTTL TITLE
  39. syn keyword masmDirective    MODEL NAME NOEMUL UNION USES VERSION
  40. syn keyword masmDirective    ORG FLAT
  41. syn match   masmDirective    "\.model"
  42. syn match   masmDirective    "\.186"
  43. syn match   masmDirective    "\.286"
  44. syn match   masmDirective    "\.286c"
  45. syn match   masmDirective    "\.286p"
  46. syn match   masmDirective    "\.287"
  47. syn match   masmDirective    "\.386"
  48. syn match   masmDirective    "\.386c"
  49. syn match   masmDirective    "\.386p"
  50. syn match   masmDirective    "\.387"
  51. syn match   masmDirective    "\.486"
  52. syn match   masmDirective    "\.486c"
  53. syn match   masmDirective    "\.486p"
  54. syn match   masmDirective    "\.8086"
  55. syn match   masmDirective    "\.8087"
  56. syn match   masmDirective    "\.ALPHA"
  57. syn match   masmDirective    "\.CODE"
  58. syn match   masmDirective    "\.DATA"
  59.  
  60. syn keyword masmRegister    AX BX CX DX SI DI BP SP
  61. syn keyword masmRegister    ES DS SS CS
  62. syn keyword masmRegister    AH BH CH DH AL BL CL DL
  63. syn keyword masmRegister    EAX EBX ECX EDX ESI EDI EBP ESP
  64.  
  65.  
  66. " these are current as of the 486 - don't have any pentium manuals handy
  67. syn keyword masmOpcode        AAA AAD AAM AAS ADC ADD AND ARPL BOUND BSF
  68. syn keyword masmOpcode        BSR BSWAP BT BTC BTR BTS BSWAP BT BTC BTR
  69. syn keyword masmOpcode        BTS CALL CBW CDQ CLC CLD CLI CLTS CMC CMP
  70. syn keyword masmOpcode        CMPS CMPSB CMPSW CMPSD CMPXCHG CWD CWDE DAA
  71. syn keyword masmOpcode        DAS DEC DIV ENTER HLT IDIV IMUL IN INC INS
  72. syn keyword masmOpcode        INSB INSW INSD INT INTO INVD INVLPG IRET
  73. syn keyword masmOpcode        IRETD JA JAE JB JBE JC JCXZ JECXZ JE JZ JG
  74. syn keyword masmOpcode        JGE JL JLE JNA JNAE JNB JNBE JNC JNE JNG JNGE
  75. syn keyword masmOpcode        JNL JNLE JNO JNP JNS JNZ JO JP JPE JPO JS JZ
  76. syn keyword masmOpcode        JMP LAHF LAR LEA LEAVE LGDT LIDT LGS LSS LFS
  77. syn keyword masmOpcode        LODS LODSB LODSW LODSD LOOP LOOPE LOOPZ LOONE
  78. syn keyword masmOpcode        LOOPNE RETF RETN
  79. syn keyword masmOpcode        LDS LES LLDT LMSW LOCK LSL LTR MOV MOVS MOVSB
  80. syn keyword masmOpcode        MOVSW MOVSD MOVSX MOVZX MUL NEG NOP NOT OR
  81. syn keyword masmOpcode        OUT OUTS OUTSB OUTSW OUTSD POP POPA POPD
  82. syn keyword masmOpcode        POPF POPFD PUSH PUSHA PUSHAD PUSHF PUSHFD
  83. syn keyword masmOpcode        RCL RCR ROL ROR REP REPE REPZ REPNE REPNZ
  84. syn keyword masmOpcode        RET SAHF SAL SAR SHL SHR SBB SCAS SCASB
  85. syn keyword masmOpcode        SCASW SCASD SETA SETAE SETB SETBE SETC SETE
  86. syn keyword masmOpcode        SETG SETGE SETL SETLE SETNA SETNAE SETNB
  87. syn keyword masmOpcode        SETNBE SETNC SETNE SETNG SETNGE SETNL SETNLE
  88. syn keyword masmOpcode        SETNO SETNP SETNS SETNZ SETO SETP SETPE SETPO
  89. syn keyword masmOpcode        SETS SETZ SGDT SIDT SHLD SHRD SLDT SMSW STC
  90. syn keyword masmOpcode        STD STI STOS STOSB STOSW STOSD STR SUB TEST
  91. syn keyword masmOpcode        VERR VERW WAIT WBINVD XADD XCHG XLAT XLATB XOR
  92.  
  93. " floating point coprocessor as of 487
  94. syn keyword masmOpFloat        F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX
  95. syn keyword masmOpFloat        FNCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI
  96. syn keyword masmOpFloat        FNDISI FDIV FDIVP FDIVR FDIVRP FENI FNENI
  97. syn keyword masmOpFloat        FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD
  98. syn keyword masmOpFloat        FIMUL FINCSTP FINIT FNINIT FIST FISTP FISUB
  99. syn keyword masmOpFloat        FISUBR FLD FLDCW FLDENV FLDLG2 FLDLN2 FLDL2E
  100. syn keyword masmOpFloat        FLDL2T FLDPI FLDZ FLD1 FMUL FMULP FNOP FPATAN
  101. syn keyword masmOpFloat        FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE
  102. syn keyword masmOpFloat        FNSAVE FSCALE FSETPM FSIN FSINCOS FSQRT FST
  103. syn keyword masmOpFloat        FSTCW FNSTCW FSTENV FNSTENV FSTP FSTSW FNSTSW
  104. syn keyword masmOpFloat        FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP
  105. syn keyword masmOpFloat        FUCOMPP FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1
  106. syn match   masmOpFloat        "FSTSW[ \t]\+AX"
  107. syn match   masmOpFloat        "FNSTSW[ \t]\+AX"
  108.  
  109. if !exists("did_masm_syntax_inits")
  110.   let did_masm_syntax_inits = 1
  111.  
  112.   " The default methods for highlighting.  Can be overridden later
  113.   hi link masmLabel    Label
  114.   hi link masmComment    Comment
  115.   hi link masmDirective    Statement
  116.   hi link masmOperator    Statement
  117.   hi link masmString    String
  118.  
  119.   hi link masmHexadecimal Number
  120.   hi link masmDecimal    Number
  121.   hi link masmBinary    Number
  122.   hi link masmFloat    Number
  123.  
  124.   hi link masmIdentifier Identifier
  125. endif
  126.  
  127. let b:current_syntax = "masm"
  128.  
  129. " vim: ts=8
  130.