⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nasm.vim

📁 MSYS在windows下模拟了一个类unix的终端
💻 VIM
📖 第 1 页 / 共 2 页
字号:
" Vim syntax file" Language:	NASM - The Netwide Assembler (v0.98)" Maintainer:	Manuel M.H. Stol	<mmh.stol@gmx.net>" Last Change:	2001-05-07" Vim URL:	http://www.vim.org/lang.html" NASM Home:	http://www.cryogen.com/Nasm/" Setup Syntax:"  Clear old syntax settingsif version < 600  syn clearelseif exists("b:current_syntax")  finishendif"  Assembler syntax is case insensetivesyn case ignore" Vim search and movement commands on identifersif version < 600  "  Comments at start of a line inside which to skip search for indentifiers  set comments=:;  "  Identifier Keyword characters (defines \k)  set iskeyword=@,48-57,#,$,.,?,@-@,_,~else  "  Comments at start of a line inside which to skip search for indentifiers  setlocal comments=:;  "  Identifier Keyword characters (defines \k)  setlocal iskeyword=@,48-57,#,$,.,?,@-@,_,~endif" Comments:syn region  nasmComment		start=";" keepend end="$" contains=@nasmGrpInCommentssyn region  nasmSpecialComment	start=";\*\*\*" keepend end="$"syn keyword nasmInCommentTodo	contained TODO FIXME XXX[XXXXX]syn cluster nasmGrpInComments	contains=nasmInCommentTodosyn cluster nasmGrpComments	contains=@nasmGrpInComments,nasmComment,nasmSpecialComment" Label Identifiers:"  in NASM: 'Everything is a Label'"  Definition Label = label defined by %[i]define or %[i]assign"  Identifier Label = label defined as first non-keyword on a line or %[i]macrosyn match   nasmLabelError	"$\=\(\d\+\K\|[#\.@]\|\$\$\k\)\k*\>"syn match   nasmLabel		"\<\(\h\|[?@]\)\k*\>"syn match   nasmLabel		"[\$\~]\(\h\|[?@]\)\k*\>"lc=1"  Labels starting with one or two '.' are specialsyn match   nasmLocalLabel	"\<\.\(\w\|[#$?@~]\)\k*\>"syn match   nasmLocalLabel	"\<\$\.\(\w\|[#$?@~]\)\k*\>"ms=s+1if !exists("nasm_no_warn")  syn match  nasmLabelWarn	"\<\~\=\$\=[_\.][_\.\~]*\>"endifif exists("nasm_loose_syntax")  syn match   nasmSpecialLabel	"\<\.\.@\k\+\>"  syn match   nasmSpecialLabel	"\<\$\.\.@\k\+\>"ms=s+1  if !exists("nasm_no_warn")    syn match   nasmLabelWarn	"\<\$\=\.\.@\(\d\|[#$\.~]\)\k*\>"  endif  " disallow use of nasm internal label format  syn match   nasmLabelError	"\<\$\=\.\.@\d\+\.\k*\>"else  syn match   nasmSpecialLabel	"\<\.\.@\(\h\|[?@]\)\k*\>"  syn match   nasmSpecialLabel	"\<\$\.\.@\(\h\|[?@]\)\k*\>"ms=s+1endif"  Labels can be dereferenced with '$' to destinguish them from reserved wordssyn match   nasmLabelError	"\<\$\K\k*\s*:"syn match   nasmLabelError	"^\s*\$\K\k*\>"syn match   nasmLabelError	"\<\~\s*\(\k*\s*:\|\$\=\.\k*\)"" Constants:syn match   nasmStringError	+["']+syn match   nasmString		+\("[^"]\{-}"\|'[^']\{-}'\)+syn match   nasmBinNumber	"\<[0-1]\+b\>"syn match   nasmBinNumber	"\<\~[0-1]\+b\>"lc=1syn match   nasmOctNumber	"\<\o\+q\>"syn match   nasmOctNumber	"\<\~\o\+q\>"lc=1syn match   nasmDecNumber	"\<\d\+\>"syn match   nasmDecNumber	"\<\~\d\+\>"lc=1syn match   nasmHexNumber	"\<\(\d\x*h\|0x\x\+\|\$\d\x*\)\>"syn match   nasmHexNumber	"\<\~\(\d\x*h\|0x\x\+\|\$\d\x*\)\>"lc=1syn match   nasmFltNumber	"\<\d\+\.\d*\(e[+-]\=\d\+\)\=\>"syn keyword nasmFltNumber	Inf Infinity Indefinite NaN SNaN QNaNsyn match   nasmNumberError	"\<\~\s*\d\+\.\d*\(e[+-]\=\d\+\)\=\>"" Netwide Assembler Storage Directives:"  Storage typessyn keyword nasmTypeError	DF EXTRN FWORD RESF TBYTEsyn keyword nasmType		FAR NEAR SHORTsyn keyword nasmType		BYTE WORD DWORD QWORD DQWORD HWORD DHWORD TWORDsyn keyword nasmType		CDECL FASTCALL NONE PASCAL STDCALLsyn keyword nasmStorage		DB DW DD DQ DDQ DTsyn keyword nasmStorage		RESB RESW RESD RESQ RESDQ RESTsyn keyword nasmStorage		EXTERN GLOBAL COMMON"  Structured storage typessyn match   nasmTypeError	"\<\(AT\|I\=\(END\)\=\(STRUCT\=\|UNION\)\|I\=END\)\>"syn match   nasmStructureLabel	contained "\<\(AT\|I\=\(END\)\=\(STRUCT\=\|UNION\)\|I\=END\)\>""   structures cannot be nested (yet) -> use: 'keepend' and 're='syn cluster nasmGrpCntnStruc	contains=ALLBUT,@nasmGrpInComments,nasmMacroDef,@nasmGrpInMacros,@nasmGrpInPreCondits,nasmStructureDef,@nasmGrpInStrucssyn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="^\s*STRUCT\>"hs=e-5 end="^\s*ENDSTRUCT\>"re=e-9 contains=@nasmGrpCntnStrucsyn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="^\s*STRUC\>"hs=e-4  end="^\s*ENDSTRUC\>"re=e-8  contains=@nasmGrpCntnStrucsyn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="\<ISTRUCT\=\>" end="\<IEND\(STRUCT\=\)\=\>" contains=@nasmGrpCntnStruc,nasmInStructure"   union types are not part of nasm (yet)"syn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnStruc"syn region  nasmStructureDef	transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnStruc,nasmInStructuresyn match   nasmInStructure	contained "^\s*AT\>"hs=e-1syn cluster nasmGrpInStrucs	contains=nasmStructure,nasmInStructure,nasmStructureLabel" PreProcessor Instructions:" NAsm PreProcs start with %, but % is not a charactersyn match   nasmPreProcError	"%{\=\(%\=\k\+\|%%\+\k*\|[+-]\=\d\+\)}\="if exists("nasm_loose_syntax")  syn cluster nasmGrpNxtCtx	contains=nasmStructureLabel,nasmLabel,nasmLocalLabel,nasmSpecialLabel,nasmLabelError,nasmPreProcErrorelse  syn cluster nasmGrpNxtCtx	contains=nasmStructureLabel,nasmLabel,nasmLabelError,nasmPreProcErrorendif"  Multi-line macrosyn cluster nasmGrpCntnMacro	contains=ALLBUT,@nasmGrpInComments,nasmStructureDef,@nasmGrpInStrucs,nasmMacroDef,@nasmGrpPreCondits,nasmMemReference,nasmInMacPreCondit,nasmInMacStrucDefsyn region  nasmMacroDef	matchgroup=nasmMacro keepend start="^\s*%macro\>"hs=e-5 start="^\s*%imacro\>"hs=e-6 end="^\s*%endmacro\>"re=e-9 contains=@nasmGrpCntnMacro,nasmInMacStrucDefif exists("nasm_loose_syntax")  syn match  nasmInMacLabel	contained "%\(%\k\+\>\|{%\k\+}\)"  syn match  nasmInMacLabel	contained "%\($\+\(\w\|[#\.?@~]\)\k*\>\|{$\+\(\w\|[#\.?@~]\)\k*}\)"  syn match  nasmInMacPreProc	contained "^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=nasmStructureLabel,nasmLabel,nasmInMacParam,nasmLocalLabel,nasmSpecialLabel,nasmLabelError,nasmPreProcError  if !exists("nasm_no_warn")    syn match nasmInMacLblWarn	contained "%\(%[$\.]\k*\>\|{%[$\.]\k*}\)"    syn match nasmInMacLblWarn	contained "%\($\+\(\d\|[#\.@~]\)\k*\|{\$\+\(\d\|[#\.@~]\)\k*}\)"    hi link nasmInMacCatLabel	nasmInMacLblWarn  else    hi link nasmInMacCatLabel	nasmInMacLabel  endifelse  syn match  nasmInMacLabel	contained "%\(%\(\w\|[#?@~]\)\k*\>\|{%\(\w\|[#?@~]\)\k*}\)"  syn match  nasmInMacLabel	contained "%\($\+\(\h\|[?@]\)\k*\>\|{$\+\(\h\|[?@]\)\k*}\)"  hi link nasmInMacCatLabel	nasmLabelErrorendifsyn match   nasmInMacCatLabel	contained "\d\K\k*"lc=1syn match   nasmInMacLabel	contained "\d}\k\+"lc=2if !exists("nasm_no_warn")  syn match  nasmInMacLblWarn	contained "%\(\($\+\|%\)[_~][._~]*\>\|{\($\+\|%\)[_~][._~]*}\)"endifsyn match   nasmInMacPreProc	contained "^\s*%pop\>"hs=e-3syn match   nasmInMacPreProc	contained "^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=@nasmGrpNxtCtx"   structures cannot be nested (yet) -> use: 'keepend' and 're='syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="^\s*STRUCT\>"hs=e-5 end="^\s*ENDSTRUCT\>"re=e-9 contains=@nasmGrpCntnMacrosyn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="^\s*STRUC\>"hs=e-4  end="^\s*ENDSTRUC\>"re=e-8  contains=@nasmGrpCntnMacrosyn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="\<ISTRUCT\=\>" end="\<IEND\(STRUCT\=\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructure"   union types are not part of nasm (yet)"syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnMacro"syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructuresyn region  nasmInMacPreConDef	contained transparent matchgroup=nasmInMacPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(ctx\|def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(ctx\|def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnMacro,nasmInMacPreCondit,nasmInPreConditsyn match   nasmInMacPreCondit	contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtxsyn match   nasmInMacPreCondit	contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtxsyn match   nasmInMacPreCondit	contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtxsyn match   nasmInMacParamNum	contained "\<\d\+\.list\>"me=e-5syn match   nasmInMacParamNum	contained "\<\d\+\.nolist\>"me=e-7syn match   nasmInMacDirective	contained "\.\(no\)\=list\>"syn match   nasmInMacMacro	contained transparent "macro\s"lc=5 skipwhite nextgroup=nasmStructureLabelsyn match   nasmInMacMacro	contained "^\s*%rotate\>"hs=e-6syn match   nasmInMacParam	contained "%\([+-]\=\d\+\|{[+-]\=\d\+}\)""   nasm conditional macro operands/arguments"   Todo: check feasebility; add too nasmGrpInMacros, etc."syn match   nasmInMacCond	contained "\<\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P[EO]\=\)\>"syn cluster nasmGrpInMacros	contains=nasmMacro,nasmInMacMacro,nasmInMacParam,nasmInMacParamNum,nasmInMacDirective,nasmInMacLabel,nasmInMacLblWarn,nasmInMacMemRef,nasmInMacPreConDef,nasmInMacPreCondit,nasmInMacPreProc,nasmInMacStrucDef"   Context pre-procs that are better used inside a macroif exists("nasm_ctx_outside_macro")  syn region nasmPreConditDef	transparent matchgroup=nasmCtxPreCondit start="^\s*%ifnctx\>"hs=e-6 start="^\s*%ifctx\>"hs=e-5 end="%endif\>" contains=@nasmGrpCntnPreCon  syn match  nasmCtxPreProc	"^\s*%pop\>"hs=e-3  if exists("nasm_loose_syntax")    syn match   nasmCtxLocLabel	"%$\+\(\w\|[#\.?@~]\)\k*\>"  else    syn match   nasmCtxLocLabel	"%$\+\(\h\|[?@]\)\k*\>"  endif  syn match nasmCtxPreProc	"^\s*%\(push\|repl\)\>"hs=e-4 skipwhite nextgroup=@nasmGrpNxtCtx  syn match nasmCtxPreCondit	contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx  syn match nasmCtxPreCondit	contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx  syn match nasmCtxPreCondit	contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx  if exists("nasm_no_warn")    hi link nasmCtxPreCondit	nasmPreCondit    hi link nasmCtxPreProc	nasmPreProc    hi link nasmCtxLocLabel	nasmLocalLabel  else    hi link nasmCtxPreCondit	nasmPreProcWarn    hi link nasmCtxPreProc	nasmPreProcWarn    hi link nasmCtxLocLabel	nasmLabelWarn  endifendif"  Conditional assemblysyn cluster nasmGrpCntnPreCon	contains=ALLBUT,@nasmGrpInComments,@nasmGrpInMacros,@nasmGrpInStrucssyn region  nasmPreConditDef	transparent matchgroup=nasmPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnPreConsyn match   nasmInPreCondit	contained "^\s*%el\(if\|se\)\>"hs=e-4syn match   nasmInPreCondit	contained "^\s*%elifid\>"hs=e-6syn match   nasmInPreCondit	contained "^\s*%elif\(def\|idn\|nid\|num\|str\)\>"hs=e-7syn match   nasmInPreCondit	contained "^\s*%elif\(n\(def\|idn\|num\|str\)\|idni\)\>"hs=e-8syn match   nasmInPreCondit	contained "^\s*%elifnidni\>"hs=e-9syn cluster nasmGrpInPreCondits	contains=nasmPreCondit,nasmInPreCondit,nasmCtxPreConditsyn cluster nasmGrpPreCondits	contains=nasmPreConditDef,@nasmGrpInPreCondits,nasmCtxPreProc,nasmCtxLocLabel"  Other pre-processor statementssyn match   nasmPreProc		"^\s*%rep\>"hs=e-3syn match   nasmPreProc		"^\s*%line\>"hs=e-4syn match   nasmPreProc		"^\s*%\(clear\|error\)\>"hs=e-5syn match   nasmPreProc		"^\s*%endrep\>"hs=e-6syn match   nasmPreProc		"^\s*%exitrep\>"hs=e-7syn match   nasmDefine		"^\s*%undef\>"hs=e-5syn match   nasmDefine		"^\s*%\(assign\|define\)\>"hs=e-6syn match   nasmDefine		"^\s*%i\(assign\|define\)\>"hs=e-7syn match   nasmInclude		"^\s*%include\>"hs=e-7"  Multiple pre-processor instructions on single line detection (obsolete)"syn match   nasmPreProcError	+^\s*\([^\t "%';][^"%';]*\|[^\t "';][^"%';]\+\)%\a\+\>+syn cluster nasmGrpPreProcs	contains=nasmMacroDef,@nasmGrpInMacros,@nasmGrpPreCondits,nasmPreProc,nasmDefine,nasmInclude,nasmPreProcWarn,nasmPreProcError" Register Identifiers:"  Register operands:syn match   nasmGen08Register	"\<[A-D][HL]\>"syn match   nasmGen16Register	"\<\([A-D]X\|[DS]I\|[BS]P\)\>"syn match   nasmGen32Register	"\<E\([A-D]X\|[DS]I\|[BS]P\)\>"syn match   nasmSegRegister	"\<[C-GS]S\>"syn match   nasmSpcRegister	"\<E\=IP\>"syn match   nasmFpuRegister	"\<ST\o\>"syn match   nasmMmxRegister	"\<MM\o\>"syn match   nasmSseRegister	"\<XMM\o\>"syn match   nasmCtrlRegister	"\<CR\o\>"syn match   nasmDebugRegister	"\<DR\o\>"syn match   nasmTestRegister	"\<TR\o\>"syn match   nasmRegisterError	"\<\(CR[15-9]\|DR[4-58-9]\|TR[0-28-9]\)\>"syn match   nasmRegisterError	"\<X\=MM[8-9]\>"syn match   nasmRegisterError	"\<ST\((\d)\|[8-9]\>\)"syn match   nasmRegisterError	"\<E\([A-D][HL]\|[C-GS]S\)\>""  Memory reference operand (address):syn match   nasmMemRefError	"[\[\]]"syn cluster nasmGrpCntnMemRef	contains=ALLBUT,@nasmGrpComments,@nasmGrpPreProcs,@nasmGrpInStrucs,nasmMemReference,nasmMemRefErrorsyn match   nasmInMacMemRef	contained "\[[^;\[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmInMacLabel,nasmInMacLblWarn,nasmInMacParamsyn match   nasmMemReference	"\[[^;\[\]]\{-}\]" contains=@nasmGrpCntnMemRef,nasmPreProcError,nasmCtxLocLabel" Netwide Assembler Directives:"  Compilation constantssyn keyword nasmConstant	__BITS__ __DATE__ __FILE__ __FORMAT__ __LINE__syn keyword nasmConstant	__NASM_MAJOR__ __NASM_MINOR__ __NASM_VERSION__syn keyword nasmConstant	__TIME__"  Instruction modifierssyn match   nasmInstructnError	"\<TO\>"syn match   nasmInstrModifier	"\(^\|:\)\s*[C-GS]S\>"ms=e-1syn keyword nasmInstrModifier	A16 A32 O16 O32

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -