Skip to content

Instantly share code, notes, and snippets.

@islem-esi
Created February 16, 2021 22:02
Show Gist options
  • Save islem-esi/3d26ba8ffecd830d7bdad8fc50362f59 to your computer and use it in GitHub Desktop.
Save islem-esi/3d26ba8ffecd830d7bdad8fc50362f59 to your computer and use it in GitHub Desktop.
assembly instructions groups
inst_groups = {
#Conditional Data Transfer
'cdt': ['cmove', 'cmovz', 'cmovne', 'cmovnz', 'cmova', 'cmovnbe', 'cmovae', 'cmovnb', 'cmovb',
'cmovnae', 'cmovbe', 'cmovna', 'cmovg',
'cmovnle', 'cmovge', 'cmovnl', 'cmovl', 'cmovnge', 'cmovle', 'cmovng',
'cmovc', 'cmovnc', 'cmovo', 'cmovno', 'cmovs', 'cmovns', 'cmovp', 'cmovpe',
'cmovnp', 'cmovpo',],
#Unconditianl Data Transfer
'udt': ['mov', 'xchg', 'bswap', 'movsx', 'movzx', 'movlps', 'movqda', 'lock xchg'],
#Stack Data Transfer
'sdt': ['push', 'pop', 'pusha', 'pushad', 'popa', 'popad','popal', 'pushal'],
'adt': ['xadd'],
#Compared Data Transfer
'cmpdt': ['cmpxchg', 'cmpxchg8b',],
#Converting
'cvt': ['cwd', 'cdq', 'cbw', 'cwde'],
#Binary Arithmetic Instructions
'bai': ['adcx', 'adox', 'add', 'adc', 'sub', 'sbb', 'imul', 'imulb', 'imulw', 'imull',
'mul', 'mulb', 'mulw', 'mull', 'idiv', 'idivb', 'idivw', 'idivl',
'div', 'inc', 'dec', 'neg', 'cmp','addb', 'addw', 'addl', 'adcb',
'adcw', 'adcl', 'subb', 'subw', 'subl', 'sbbb', 'sbbw', 'sbbl',
'cmpb', 'cmpw', 'cmpl', 'incb', 'incw', 'incl', 'decb', 'decw',
'decl', 'negb', 'negw', 'negl', 'lock add', 'lock adc', 'lock sbb',
'lock sub', 'lock neg', 'lock inc', 'lock dec'],
#Integer Arithmetic Instructions
'iai': ['fiadd', 'fiaddr', 'ficom', 'fidiv', 'fisub', 'fimul', 'ficomp', 'fisubr','fidivr','fimulr'],
#Decimal Arithmetic Instructions
'dai': ['daa', 'das', 'aaa', 'aas', 'aam', 'aad',],
#Flaot Arithmetic Instructions
'fai': ['fabs', 'fadd', 'faddp', 'fchs', 'fdiv', 'fdivp', 'fdivr', 'fdivrp', 'fiadd',
'fidiv', 'fidivr', 'fimul',
'fisub', 'fisubr', 'fmul', 'fmulp', 'fprem', 'fprem1', 'frndint', 'fscale', 'fsqrt',
'fsub', 'fsubp',
'fsubr', 'fsubrp', 'fxtract'],
#Float Comparison Instructions
'fci': ['fcom', 'fcomi', 'fcomip', 'fcomp', 'fcompp', 'ftst', 'fucom',
'fucomi', 'fucomip', 'fucomp', 'fucompp', 'fxam'],
#Stack Arithmetic Instructions
'sai': ['fsqrt', 'fscale', 'fprem', 'frndint', 'fxtract', 'fabs', 'fchs',],
#Logical Instructions
'li': ['and', 'andb', 'andw', 'andl', 'or', 'orb', 'orw', 'orl', 'xor',
'xorb', 'xorw', 'xorl', 'not', 'notb', 'notw', 'notl','lock or',
'lock and', 'lock xor', 'lock not',],
#Shift Rotate Instructions
'sri': ['sar', 'shr', 'sal', 'shl', 'shrd', 'shld', 'ror', 'rol', 'rcr', 'rcl',
'sarb', 'sarw', 'sarl', 'salb', 'salw', 'sall', 'shrb', 'shrw', 'shrl',
'shld', 'shldw', 'shldl', 'shrd', 'shrdw', 'shrdl', ],
#Bit Instructions
'bii': ['bt', 'bts', 'btr', 'btc', 'bsf', 'bsr','lock bt', 'lock bts',
'lock btr', 'lockbtc'],
#Byte Instructions
'byi': ['sete', 'setz', 'setne', 'setnz', 'seta', 'setnbe', 'setae', 'setnb', 'setnc', 'setb', 'setnae',
'setc', 'setbe', 'setna', 'setg', 'setnle', 'setge', 'setnl', 'setl', 'setnge', 'setle', 'setng',
'sets', 'setns', 'seto', 'setno', 'setpe', 'setp', 'setpo', 'setnp', 'test', 'testb',
'testw', 'testl', 'crc32', 'popcnt',],
#Conditional Jumping
'cj': ['je', 'jz', 'jnz', 'jnz', 'ja', 'jnbe', 'jae', 'jnb', 'jb', 'jnae', 'jbe', 'jna', 'jg',
'jnle', 'jge', 'jnl', 'jl', 'jnge', 'jle', 'jng', 'jc', 'jnc', 'jo', 'jno', 'js', 'jns',
'jpo', 'jnp', 'jpe', 'jp', 'jcxz', 'jecxz', 'loopz', 'loope', 'loopnz', 'loopne', 'into',
'jne'],
#Unconditional Jumping/Looping
'uj': ['jmp', 'loop', 'call', 'enter', 'leave','lcall','acall', 'ljmp',],
#Interruptions
'int': ['ret', 'iret', 'retn', 'int', 'retf', 'hlt', 'iretd',],
#Strings Instructions
'si': ['movs', 'movsb', 'movsw', 'movsd', 'cmps', 'cmpsb', 'cmpsw', 'cmpsd', 'scas',
'scasb', 'scasw', 'scasd', 'lods', 'lodsb', 'lodsw', 'lodsd', 'rep', 'repe',
'repz', 'repne', 'repnz', 'stos', 'stosd', 'stosb', 'stosw', 'stosl', ],
#I/O Instructions
'io': ['in', 'out', 'ins', 'insb', 'insw', 'insd', 'outs', 'outsb', 'outsw', 'outsd',
'inb', 'inw', 'insl','outw','outsl','outl',],
#Flags
'flg': ['stc', 'clc', 'cmc', 'cld', 'std', 'lahf', 'sahf', 'pushf', 'pushfd',
'popf', 'popfd', 'sti', 'cli','popfw','popfl', 'pushfw','pushfl', 'salc'],
#Segment Register Instructions
'seg': ['lds', 'les', 'lfs', 'lgs', 'lss',],
#
'misc': ['lea', 'nop', 'ud', 'xlat', 'xlatb', 'cpuid', 'prefetchw', 'prefetchwt',
'clflush', 'clflushopt',],
'sr': ['xsave', 'xsavec', 'xsaveopt', 'xrstor', 'xgetbv',],
'rng': ['rdrand', 'rdseed'],
'arr': ['bound', 'boundb', 'boundw', 'boundl'],
'pmi': ['sldt', 'str', 'lldt', 'ltr', 'verr', 'verw', 'sgdt', 'sidt',
'smsw', 'lmsw', 'lar', 'lsl', 'clts', 'arpl', 'lgdt', 'lidt',],
'pci': ['frstor', 'finitfninit', 'finit', 'fnop', 'fsave', 'fnsave', 'fstcw',
'fnstcw', 'fstenv', 'fnstenv', 'fstsw', 'fnstsw', 'fwait', 'wait',
'fclex', 'fnclex', 'fdecstp', 'ffree', 'fincstp','pause', 'fclex',
'fdecstp', 'ffree', 'fincstp', 'finit', 'fldcw', 'fldenv',
'fnclex', 'fninit', 'fnop', 'fnsave', 'fnstcw', 'fnstenv',
'fnstsw', 'frstor', 'fsave', 'fstcw', 'fstenv', 'fstsw', 'fwait',
'rdtsc','fxrstor', 'fxsave', 'invd', 'winvd',],
#MMX Data Transfer
'mmxt': ['movd', 'movq'],
#MMX Conversion
'mmxc': ['packssdw', 'packsswb', 'packuswb', 'punpckhbw', 'punpckhdq',
'punpckhwd', 'punpcklbw', 'punpckldq', 'punpcklwd'],
#MMX Arithmetic Instuctions
'mmxa': ['paddb', 'paddd', 'paddsb', 'paddsw', 'paddusb', 'paddusw', 'paddw', 'pmaddwd', 'pmulhw',
'pmullw', 'psubb', 'psubd', 'psubsb', 'psubsw', 'psubusb', 'psubusw', 'psubw'],
#MMX Comparision
'mmxcmp': ['pcmpeqd', 'pcmpeqb', 'pcmpeqw', 'pcmpgtb', 'pcmpgtd', 'pcmpgtw'],
#MMX Logical
'mmxl' : ['pand', 'pandn', 'por', 'pxor'],
#MMX Shift Rotate Instuctions
'mmxsr': ['pslld', 'psllq', 'psllw', 'psrad', 'psraw', 'psrld', 'psrlq', 'psrlw'],
#MMX State Management
'mmxsm' : ['emms'],
#SSE Data Transfer
'sset': ['movaps', 'movhlps', 'movhps', 'movlhps', 'movlps', 'movmskps', 'movss', 'movups'],
#SSE Arithmetic Instructions
'ssea': ['addps', 'addss', 'divps', 'divss', 'maxps', 'maxss', 'minps', 'minss', 'mulps',
'mulss', 'rcpps', 'rcpss', 'rsqrtps', 'rsqrtss', 'sqrtps', 'sqrtss', 'subps', 'subss'],
#SSE Comparision
'ssecmp': ['cmpps', 'cmpss', 'comiss', 'ucomiss',],
#SSE Logical
'ssel': ['andnps', 'andps', 'orps', 'xorps'],
#SSE Shuffle Unpack
'ssesu': ['shufps', 'unpckhps', 'unpcklps'],
#SSE Convertion
'ssecvt': ['cvtpi2ps', 'cvtps2pi', 'cvtsi2ss', 'cvtss2si', 'cvttps2pi', 'cvttss2si'],
#SSE
#Floating Data Transfer
'fdt' : ['fbld', 'fbstp', 'fcmovb', 'fcmovbe', 'fcmove', 'fcmovnb', 'fcmovnbe', 'fcmovne',
'fcmovnu', 'fcmovu', 'fild', 'fist', 'fistp', 'fld', 'fst', 'fstp', 'fxch','fisttp',],
#Flaot Transcedental
'ftrdt': ['f2xm1', 'fcos', 'fpatan', 'fptan', 'fsin', 'fsincos', 'fyl2x', 'fyl2xp1'],
#Float Load constant
'flc' : ['fld1', 'fldl2e', 'fldl2t', 'fldlg2', 'fldln2', 'fldpi', 'fldz'],
'tse': ['xabort', 'xbegin', 'xbeginl', 'xbeginw', 'xend', 'xtest'],
'ssebi': ['pavgb', 'pavgw', 'pextrw', 'pinsrw', 'pmaxsw', 'pmaxub', 'pminsw',
'pminub', 'pmovmskb',
'pmulhuw', 'psadbw', 'pshufw',],
'vmx': ['invept', 'invvpid', 'vmcall', 'vmclear', 'vmfunc', 'vmlaunch', 'vmresume', 'vmptrld',
'vmptrst', 'vmread', 'vmwrite', 'vmxoff', 'vmxon',]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment