#TITLE=NASM ;=================================================================== ; 80x86 ; NASM Syntax File ; ; Written ; by ; Cloud Wu ; ; Http://member.netease.com/~cloudwu ; ; This file is provided as a syntax file for ASM source code. ; ; The keywords are arranged as follows: ; ; 1 - Pseudo-Ops ; 2 - Mnuemonics ; 3 - Types ; 4 - NASM macro ; 5 - Registers ;=================================================================== #DELIMITER=,[]-+*/="'~!&|\<>?:;#() #QUOTATION1=' #QUOTATION2=" #CONTINUE_QUOTE=n #LINECOMMENT=; #LINECOMMENT2= #COMMENTON= #COMMENTOFF= #COMMENTON2= #COMMENTOFF2= #ESCAPE= #CASE=n #PREFIX1= #PREFIX2= #PREFIX3=$ #PREFIX4= #PREFIX5= #SUFFIX1= #SUFFIX2= #SUFFIX3= #SUFFIX4= #SUFFIX5= ;========================================== ; These are the psuedo-ops ;========================================== #KEYWORD=Psuedo-ops bits section org .text .data .bss ..start use32 use16 class code data bss global extern struc endstruc istruc iend at import export equ near ;========================================== ; End of the psuedo-ops ;========================================== ;========================================== ; These are all of the mnuemonics ;========================================== #KEYWORD=Mnuemonics aaa aad aam aas adc add and arpl bound bsf bsr bswap bt btc btr bts call cbw cdq clc cld cli clts cmc cmp cmps cmpxchg cwd cwde daa das dec div enter esc hlt idiv imul in inc ins int into invd invlpg iret iretd jcxz jecxz jmp lahf lar lds lea leave les lfs lgdt lidt lgs lldt lmsw lock lodsb lodsw lodsd loop loope loopz loopnz loopne lsl lss ltr mov movsb movsw movsd movsx movzx mul neg nop not or out outs pop popa popad popf popfd push pusha pushad pushf pushfd rcl rcr rep repe repz repne repnz ret retf rol ror sahf sal shl sar sbb scas setae setnb setb setnae setbe setna sete setz setne setnz setl setnge setnl setge setle setng setg setnle sets setns setc setnc seto setno setp setpe setnp setpo sgdt sidt shl shr shld shrd sldt smsw stc std sti stosb stosw stosd str sub test verr verw wait fwait wbinvd xchg xlat xlatb xor ja jae jb jbe jc jge je jg jl jle jna jnae jnb jnbe jnc jne jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz emms movd movq packsswb packssdw packuswb paddb paddw padddsb paddusw pand pandn pcmpeqb pcmpeqw pcmpeqd pcmpgtb pcmpgtw pcmpgtd pmaddwd pmulhw pmullw por psllw pslld psllq psraw psrad psrlw psrld psrlq psubb psubw psubd psubsb psubsw psubusb psubusw punpckhbw punpckhwd punpckhdq punpcklbw punpcklwd punpckldq pxor ;========================================== ; End of the mnuemonics ;========================================== ;========================================== ; These are all of the types ;========================================== #KEYWORD=Types DB DW DD DQ DT resb resw resd resq rest byte word dword ;========================================== ; End of the types ;========================================== ;========================================== ; These are own macro ;========================================== #KEYWORD=macro %macro %imacro %endmacro %define %ifdef %ifndef %idefine %push %pop %ifnctx %ifctx %elif %include %if %else %endif %assign %define %undef %error %rep %endrep %rotate struct proc esp2ebp arg saveebx saveebp saveesi saveedi locvar endlocvar savestack var endproc exit callapi ;========================================== ; End of the own macro ;========================================== ;========================================== ; These are all of the registers ;========================================== #KEYWORD=Registers al ah ax bl bh bx cl ch cx dl dh dx si di esi edi eax ebx ecx edx ebp esp cs ds ss es fs gs sp bp mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 st0 st1 st2 st3 st4 st5 st6 st7 ;========================================== ; End of the registers ;==========================================