! Syntax Highlighting Patterns for Nasm 0.98 Assembly Language ! (Author: Claudio Fanin) ! (Contributions: Wojciech Mula - SSE[2], numbers, labels) ! Last update 2002-07-01 ! ! In NEdit Version 5.0.1 and beyond, load this pattern by starting nedit with: ! ! nedit -import ! ! Then, check that the patterns were loaded correctly, and choose Save Defaults ! from the Preferences menu. The new patterns will now be incorporated into ! your own .nedit file, so the next time you start NEdit, you will no longer ! need to use -import. ! ! In version 5.0, without -import, you must edit your .nedit file by hand and ! add the contents of each resource below to the corresponding list in your ! .nedit file. Be sure to separate new entries with \n, and continue resource ! strings by escaping all newlines within a resource value with \ (backslash), ! leaving only the last line of the resource value not ending in \. ! ! Please consider that the suggested colours are related to a "medium" ! background for me defined, in .Xdefaults, as: ! ! nedit*text.background: #909080 ! nedit.highlightPatterns: \ NASM Assembly:1:1{\n\ NASM keyword :"<(aaa|aad|aam|aas|adc|add|addpd|addps|addsd|addss|and|andnpd|andnps|andpd|andps|arpl|bound|bsf|bsr|bswap|bt|btc|btr|bts|call|cbw|cdq|cwd|cwde|clc|cld|cli|clts|clflush|cmc|cmov|cmova|cmovae|cmovb|cmovbe|cmovc|cmove|cmovg|cmovge|cmovl|cmovle|cmovna|cmovnae|cmovnb|cmovnbe|cmovnc|cmovne|cmovng|cmovnge|cmovnl|cmovnle|cmovno|cmovnp|cmovns|cmovnz|cmovo|cmovp|cmovpe|cmovpo|cmovs|cmovz|cmp|cmpeqpd|cmpeqps|cmpeqsd|cmpeqss|cmplepd|cmpleps|cmplesd|cmpless|cmpltpd|cmpltps|cmpltsd|cmpltss|cmpneqpd|cmpneqps|cmpneqsd|cmpneqss|cmpnlepd|cmpnleps|cmpnlesd|cmpnless|cmpnltpd|cmpnltps|cmpnltsd|cmpnltss|cmpordpd|cmpordps|cmpordsd|cmpordss|cmpps|cmpsb|cmpsd|cmpss|cmpsw|cmpunordpd|cmpunordps|cmpunordsd|cmpunordss|cmpxchg|cmpxchg486|cmpxchg8b|comisd|comiss|cpuid|cvtqd2pd|cvtqd2ps|cvtpd2dq|cvtpd2pi|cvtpd2ps|cvtpi2pd|cvtpi2ps|cvtps2qd|cvtps2pd|cvtps2pi|cvtsd2si|cvtsd2ss|cvtsi2sd|cvtsi2ss|cvtss2sd|cvtss2si|cvttpd2dq|cvttpd2pi|cvttps2dq|cvttps2pi|cvttsd2si|cvttss2si|cwd|cwde|daa|das|dec|div|divpd|divps|divsd|divss|emms|enter|f2xm1|fabs|fadd|faddp|fbld|fbstp|fchs|fclex|fcmov|fcmovb|fcmovbe|fcmove|fcmovnb|fcmovnbe|fcmovne|fcmovnu|fcmovu|fcom|fcomp|fcompp|fcomi|fcomip|fcos|fdecstp|fdisi|fndisi|femms|feni|fneni|fdiv|fdivp|fdivr|fdivrp|ffree|fiadd|ficom|ficomp|fidiv|fidivr|fild|fist|fistp|fimul|fincstp|finit|fninit|fisub|fisubr|fld|fld1|fldl2e|fldl2t|fldlg2|fldln2|fldpi|fldz|fldcw|fldenv|fmul|fmulp|fnclex|fndisi|fneni|fninit|fnop|fnsave|fnstcw|fnstenv|fnstsw|fpatan|fptan|fprem|fprem1|frndint|fsave|frstor|fscale|fsetpm|fsin|fsincos|fsqrt|fst|fstp|fstcw|fstenv|fstsw|fsub|fsubp|fsubr|fsubrp|ftst|fucom|fucomp|fucompp|fucomi|fucomip|fxam|fxch|fxrstor|fxsave|fxtract|fyl2x|fyl2xp1|hlt|ibts|idiv|imul|in|inc|insb|insw|insd|int|int3|int1|icebp|int01|int03|into|invd|invlpg|iret|iretw|iretd|ja|jae|jb|jbe|jc|jcxz|jg|jge|jecxz|jl|jle|jmp|je|jna|jnae|jnb|jnbe|jnc|jne|jng|jnge|jnl|jnle|jno|jnp|jns|jnz|jo|jp|jpe|jpo|js|jz|lahf|lar|ldmxcsr|lds|les|lfs|lgs|lss|lea|leave|lfence|lgdt|lidt|lldt|lmsw|loadall|loadall286|lodsb|lodsw|lodsd|loop|loope|loopz|loopne|loopnz|lsl|lss|ltr|maskmovq|maskmovdqu|maxpd|maxps|maxsd|maxss|mfence|minpd|minps|minsd|minss|mov|movapd|movaps|movd|movdq2q|movdqa|movdqu|movhlps|movhpd|movhps|movlhps|movlpd|movlps|movmskpd|movmskps|movntps|movntdq|movnti|movntpd|movntq|movq|movq2qd|movsb|movsw|movsd|movss|movsx|movupd|movups|movzx|mul|mulpd|mulps|mulsd|mulss|neg|not|nop|or|orpd|orps|out|outsb|outsw|outsd|packssdw|packsswb|packuswb|paddb|paddw|paddd|paddq|paddsb|paddsiw|paddsw|paddusb|paddusw|pause|pand|pandn|paveb|pavgb|pavgusb|pavgw|pcmpeqb|pcmpeqw|pcmpeqd|pcmpgtb|pcmpgtw|pcmpgtd|pdistib|pextrw|pf2id|pf2iw|pfacc|pfadd|pfcmpeq|pfcmpge|pfcmpgt|pfmax|pfmin|pfmul|pfnacc|pfpnacc|pfrcp|pfrcpit1|pfrcpit2|pfrsqrt|pfrsqit1|pfsub|pfsubr|pi2fd|pi2fw|pinsrw|pmachriw|pmaddwd|pmagw|pmaxsw|pmaxub|pminsw|pminsw|pminub|pminub|pmovmskb|pmulhuw|pmulhriw|pmulhrwa|pmulhrwc|pmulhw|pmullw|pmuludq|pmvzb|pmvnzb|pmvlzb|pmvgezb|pop|popa|popaw|popad|popf|popfw|popfd|por|prefetch|prefetchnta|prefetcht0|prefetcht1|prefetcht2|prefetchw|psadbw|pshufd|pshufhw|pshuflw|pshufw|psllw|pslld|psllq|psraw|psrad|psrlw|psrld|psrlq|psubb|psubw|psubd|psubq|psubsb|psubsw|psubusb|psubusw|psubsiw|psubsw|pswapd|punpckhbw|punpckhwd|punpckhdq|punpckhqdq|punpcklbw|punpcklwd|punpckldq|punpcklqdq|push|pusha|pushad|pushaw|pushf|pushfd|pushfw|pxor|rcl|rcr|rcpps|rcpss|rdmsr|rdpmc|rdshr|rdtsc|rest|ret|retf|retn|rol|ror|rsdc|rsldt|rsm|rsqrtps|rsqrtss|rsts|sahf|sal|sar|salc|sbb|scasb|scasw|scasd|seta|setae|setb|setbe|setc|setcc|sete|setg|setge|setl|setle|setna|setnae|setnb|setnbe|setnc|setne|setng|setnge|setnl|setnle|setno|setnp|setns|setnz|seto|setp|setpe|setpo|sets|setz|sfence|sgdt|sidt|sldt|shl|shr|shld|shrd|shufpd|shufps|sidt|sldt|smi|smint|smintold|smsw|sqrtpd|sqrtps|sqrtsd|sqrtss|stc|std|sti|stmxcsr|stosb|stosw|stosd|str|sub|subpd|subps|subsd|subss|svdc|svldt|svts|syscall|sysenter|sysexit|sysret|test|ucomisd|ucomiss|ud0|ud1|ud2|umov|unpckhpd|unpcklpd|unpckhps|unpcklps|verr|verw|wait|wbinvd|wrmsr|wrshr|xadd|xbts|xchg|xlatb|xor|xorpd|xorps)>":::NASM Keyword::D\n\ NASM keyword2:"<(AAA|AAD|AAM|AAS|ADC|ADD|ADDPD|ADDPS|ADDSD|ADDSS|AND|ANDNPD|ANDNPS|ANDPD|ANDPS|ARPL|BOUND|BSF|BSR|BSWAP|BT|BTC|BTR|BTS|CALL|CBW|CDQ|CWD|CWDE|CLC|CLD|CLI|CLTS|CLFLUSH|CMC|CMOV|CMOVA|CMOVAE|CMOVB|CMOVBE|CMOVC|CMOVE|CMOVG|CMOVGE|CMOVL|CMOVLE|CMOVNA|CMOVNAE|CMOVNB|CMOVNBE|CMOVNC|CMOVNE|CMOVNG|CMOVNGE|CMOVNL|CMOVNLE|CMOVNO|CMOVNP|CMOVNS|CMOVNZ|CMOVO|CMOVP|CMOVPE|CMOVPO|CMOVS|CMOVZ|CMP|CMPEQPD|CMPEQPS|CMPEQSD|CMPEQSS|CMPLEPD|CMPLEPS|CMPLESD|CMPLESS|CMPLTPD|CMPLTPS|CMPLTSD|CMPLTSS|CMPNEQPD|CMPNEQPS|CMPNEQSD|CMPNEQSS|CMPNLEPD|CMPNLEPS|CMPNLESD|CMPNLESS|CMPNLTPD|CMPNLTPS|CMPNLTSD|CMPNLTSS|CMPORDPD|CMPORDPS|CMPORDSD|CMPORDSS|CMPPS|CMPSB|CMPSD|CMPSS|CMPSW|CMPUNORDPD|CMPUNORDPS|CMPUNORDSD|CMPUNORDSS|CMPXCHG|CMPXCHG486|CMPXCHG8B|COMISD|COMISS|CPUID|CVTQD2PD|CVTQD2PS|CVTPD2DQ|CVTPD2PI|CVTPD2PS|CVTPI2PD|CVTPI2PS|CVTPS2QD|CVTPS2PD|CVTPS2PI|CVTSD2SI|CVTSD2SS|CVTSI2SD|CVTSI2SS|CVTSS2SD|CVTSS2SI|CVTTPD2DQ|CVTTPD2PI|CVTTPS2DQ|CVTTPS2PI|CVTTSD2SI|CVTTSS2SI|CWD|CWDE|DAA|DAS|DEC|DIV|DIVPD|DIVPS|DIVSD|DIVSS|EMMS|ENTER|F2XM1|FABS|FADD|FADDP|FBLD|FBSTP|FCHS|FCLEX|FCMOV|FCMOVB|FCMOVBE|FCMOVE|FCMOVNB|FCMOVNBE|FCMOVNE|FCMOVNU|FCMOVU|FCOM|FCOMP|FCOMPP|FCOMI|FCOMIP|FCOS|FDECSTP|FDISI|FNDISI|FEMMS|FENI|FNENI|FDIV|FDIVP|FDIVR|FDIVRP|FFREE|FIADD|FICOM|FICOMP|FIDIV|FIDIVR|FILD|FIST|FISTP|FIMUL|FINCSTP|FINIT|FNINIT|FISUB|FISUBR|FLD|FLD1|FLDL2E|FLDL2T|FLDLG2|FLDLN2|FLDPI|FLDZ|FLDCW|FLDENV|FMUL|FMULP|FNCLEX|FNDISI|FNENI|FNINIT|FNOP|FNSAVE|FNSTCW|FNSTENV|FNSTSW|FPATAN|FPTAN|FPREM|FPREM1|FRNDINT|FSAVE|FRSTOR|FSCALE|FSETPM|FSIN|FSINCOS|FSQRT|FST|FSTP|FSTCW|FSTENV|FSTSW|FSUB|FSUBP|FSUBR|FSUBRP|FTST|FUCOM|FUCOMP|FUCOMPP|FUCOMI|FUCOMIP|FXAM|FXCH|FXRSTOR|FXSAVE|FXTRACT|FYL2X|FYL2XP1|HLT|IBTS|IDIV|IMUL|IN|INC|INSB|INSW|INSD|INT|INT3|INT1|ICEBP|INT01|INT03|INTO|INVD|INVLPG|IRET|IRETW|IRETD|JA|JAE|JB|JBE|JC|JCXZ|JG|JGE|JECXZ|JL|JLE|JMP|JE|JNA|JNAE|JNB|JNBE|JNC|JNE|JNG|JNGE|JNL|JNLE|JNO|JNP|JNS|JNZ|JO|JP|JPE|JPO|JS|JZ|LAHF|LAR|LDMXCSR|LDS|LES|LFS|LGS|LSS|LEA|LEAVE|lfence|LGDT|LIDT|LLDT|LMSW|LOADALL|LOADALL286|LODSB|LODSW|LODSD|LOOP|LOOPE|LOOPZ|LOOPNE|LOOPNZ|LSL|LSS|LTR|MASKMOVQ|MASKMOVDQU|MAXPD|MAXPS|MAXSD|MAXSS|MFENCE|MINPD|MINPS|MINSD|MINSS|MOV|MOVAPD|MOVAPS|MOVD|MOVDQ2Q|MOVDQA|MOVDQU|MOVHLPS|MOVHPD|MOVHPS|MOVLHPS|MOVLPD|MOVLPS|MOVMSKPD|MOVMSKPS|MOVNTPS|MOVNTDQ|MOVNTI|MOVNTPD|MOVNTQ|MOVQ|MOVQ2QD|MOVSB|MOVSW|MOVSD|MOVSS|MOVSX|MOVUPD|MOVUPS|MOVZX|MUL|MULPD|MULPS|MULSD|MULSS|NEG|NOT|NOP|OR|ORPD|ORPS|OUT|OUTSB|OUTSW|OUTSD|PACKSSDW|PACKSSWB|PACKUSWB|PADDB|PADDW|PADDD|PADDQ|PADDSB|PADDSIW|PADDSW|PADDUSB|PADDUSW|PAUSE|PAND|PANDN|PAVEB|PAVGB|PAVGUSB|PAVGW|PCMPEQB|PCMPEQW|PCMPEQD|PCMPGTB|PCMPGTW|PCMPGTD|PDISTIB|PEXTRW|PF2ID|PF2IW|PFACC|PFADD|PFCMPEQ|PFCMPGE|PFCMPGT|PFMAX|PFMIN|PFMUL|PFNACC|PFPNACC|PFRCP|PFRCPIT1|PFRCPIT2|PFRSQRT|PFRSQIT1|PFSUB|PFSUBR|PI2FD|PI2FW|PINSRW|PMACHRIW|PMADDWD|PMAGW|PMAXSW|PMAXUB|PMINSW|PMINSW|PMINUB|PMINUB|PMOVMSKB|PMULHUW|PMULHRIW|PMULHRWA|PMULHRWC|PMULHW|PMULLW|PMULUDQ|PMVZB|PMVNZB|PMVLZB|PMVGEZB|POP|POPA|POPAW|POPAD|POPF|POPFW|POPFD|POR|PREFETCH|PREFETCHNTA|PREFETCHT0|PREFETCHT1|PREFETCHT2|PREFETCHW|PSADBW|PSHUFD|PSHUFHW|PSHUFLW|PSHUFW|PSLLW|PSLLD|PSLLQ|PSRAW|PSRAD|PSRLW|PSRLD|PSRLQ|PSUBB|PSUBW|PSUBD|PSUBQ|PSUBSB|PSUBSW|PSUBUSB|PSUBUSW|PSUBSIW|PSUBSW|PSWAPD|PUNPCKHBW|PUNPCKHWD|PUNPCKHDQ|PUNPCKHQDQ|PUNPCKLBW|PUNPCKLWD|PUNPCKLDQ|PUNPCKLQDQ|PUSH|PUSHA|PUSHAD|PUSHAW|PUSHF|PUSHFD|PUSHFW|PXOR|RCL|RCR|RCPPS|RCPSS|RDMSR|RDPMC|RDSHR|RDTSC|REST|RET|RETF|RETN|ROL|ROR|RSDC|RSLDT|RSM|RSQRTPS|RSQRTSS|RSTS|SAHF|SAL|SAR|SALC|SBB|SCASB|SCASW|SCASD|SETA|SETAE|SETB|SETBE|SETC|SETCC|SETE|SETG|SETGE|SETL|SETLE|SETNA|SETNAE|SETNB|SETNBE|SETNC|SETNE|SETNG|SETNGE|SETNL|SETNLE|SETNO|SETNP|SETNS|SETNZ|SETO|SETP|SETPE|SETPO|SETS|SETZ|SFENCE|SGDT|SIDT|SLDT|SHL|SHR|SHLD|SHRD|SHUFPD|SHUFPS|SIDT|SLDT|SMI|SMINT|SMINTOLD|SMSW|SQRTPD|SQRTPS|SQRTSD|SQRTSS|STC|STD|STI|STMXCSR|STOSB|STOSW|STOSD|STR|SUB|SUBPD|SUBPS|SUBSD|SUBSS|SVDC|SVLDT|SVTS|SYSCALL|SYSENTER|SYSEXIT|SYSRET|TEST|UCOMISD|UCOMISS|UD0|UD1|UD2|UMOV|UNPCKHPD|UNPCKLPD|UNPCKHPS|UNPCKLPS|VERR|VERW|WAIT|WBINVD|WRMSR|WRSHR|XADD|XBTS|XCHG|XLATB|XOR|XORPD|XORPS)>":::NASM Keyword::D\n\ NASM register:"<(eax|ebx|ecx|edx|esi|edi|ebp|esp|ax|bx|cx|dx|di|si|es|cs|ds|es|fs|gs|ss|sp|bp|al|ah|bl|bh|cl|ch|dl|dh|st0|st1|st2|st3|st4|st5|st6|st7|mm0|mm1|mm2|mm3|mm4|mm5|mm6|mm7|cr0|cr2|cr3|cr4|dr0|dr1|dr2|dr3|dr6|dr7|xmm0|xmm1|xmm2|xmm3|xmm4|xmm5|xmm6|xmm7)>":::NASM Register::\n\ NASM register2:"<(EAX|EBX|ECX|EDX|ESI|EDI|EBP|ESP|AX|BX|CX|DX|DI|SI|ES|CS|DS|ES|FS|GS|SS|SP|BP|AL|AH|BL|BH|CL|CH|DL|DH|ST0|ST1|ST2|ST3|ST4|ST5|ST6|ST7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|CR0|CR2|CR3|CR4|DR0|DR1|DR2|DR3|DR6|DR7|XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7)>":::NASM Register::\n\ NASM Comment:";":"$"::NASM Comment::\n\ NASM preprocessor :"<(bits|section|export|import|seg|wrt|db|dw|dd|dq|dt|incbin|equ|resb|resw|resd|resq|times|section|segment|struc|endstruc|istruc|at|iend|align|alignb|absolute|extern|global|common|org|group|%assign|%define|%endmacro|%error|%if|%ifdef|%ifctx|%ifid|%ifidn|%ifidni|%ifnum|%ifnidn|%ifstr|%include|%endif|%endrep|%elif|%elifctx|%elifidn|%elifnidn|%elifidni|%elifnidni|%else|%exitrep|%macro|%pop|%push|%rep|%repl|%rotate|%undef|%%endstr|%%label|%%skip|%%str)>":::NASM Preprocessor::D\n\ NASM preprocessor2:"<(BITS|SECTION|EXPORT|IMPORT|SEG|WRT|DB|DW|DD|DQ|DT|INCBIN|EQU|RESB|RESW|RESD|RESQ|TIMES|SECTION|SEGMENT|STRUC|ENDSTRUC|ISTRUC|AT|IEND|ALIGN|ALIGNB|ABSOLUTE|EXTERN|GLOBAL|COMMON|ORG|GROUP|%ASSIGN|%DEFINE|%ENDMACRO|%ERROR|%IF|%IFDEF|%IFCTX|%IFID|%IFIDN|%IFIDNI|%IFNUM|%IFNIDN|%IFSTR|%INCLUDE|%ENDIF|%ENDREP|%ELIF|%ELIFCTX|%ELIFIDN|%ELIFNIDN|%ELIFIDNI|%ELIFNIDNI|%ELSE|%EXITREP|%MACRO|%POP|%PUSH|%REP|%REPL|%ROTATE|%UNDEF|%%ENDSTR|%%LABEL|%%SKIP|%%STR)>":::NASM Preprocessor::D\n\ NASM hexnumber:"(?i<0x[0-9a-f]+>|<[0-9][0-9a-f]+h>)":::NASM Number::\n\ NASM binnumber:"<[01]+[bB]>":::NASM Number::\n\ NASM octnumber:"<[0][0-7]+>|<[0-7]+[oO]>":::NASM Number::\n\ NASM decnumber:"<[0-9]+[dD]?>":::NASM Number::\n\ NASM label:"^\\s*[\\l_][\\w]*[:]":::NASM Label::\n\ NASM locallabel:"^\\s*[.][\\l_][\\w]+[:]":::NASM Locallabel::\n\ NASM mem_ref:"(?i<(byte|word|dword|qword|tword)?\\s*\\[.*\\]>)":::NASM mem_ref::\n\ } nedit.languageModes: NASM Assembly:.asm .nasm .nas .S::Auto:::: nedit.styles:\ NASM Keyword:gray20:Bold\n\ NASM Register:SeaGreen:Bold\n\ NASM Comment:gray30:Italic\n\ NASM Preprocessor:sienna:Bold\n\ NASM Number:MediumBlue:Plain\n\ NASM Label:cyan:Plain\n\ NASM Locallabel:darkGreen:Plain\n\ NASM mem_ref:sienna4:Plain\n