Skip to content

Instantly share code, notes, and snippets.

@gciruelos
Last active August 4, 2016 04:10
Show Gist options
  • Save gciruelos/6c161a8cf5255548748e93cd1c9ca3ad to your computer and use it in GitHub Desktop.
Save gciruelos/6c161a8cf5255548748e93cd1c9ca3ad to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
asm = {
'AAA': {'name': 'AAA','url': 'http://www.felixcloutier.com/x86/AAA.html','description': 'ASCII Adjust After Addition'},
'AAD': {'name': 'AAD','url': 'http://www.felixcloutier.com/x86/AAD.html','description': 'ASCII Adjust AX Before Division'},
'AAM': {'name': 'AAM','url': 'http://www.felixcloutier.com/x86/AAM.html','description': 'ASCII Adjust AX After Multiply'},
'AAS': {'name': 'AAS','url': 'http://www.felixcloutier.com/x86/AAS.html','description': 'ASCII Adjust AL After Subtraction'},
'ADC': {'name': 'ADC','url': 'http://www.felixcloutier.com/x86/ADC.html','description': 'Add with Carry'},
'ADD': {'name': 'ADD','url': 'http://www.felixcloutier.com/x86/ADD.html','description': 'Add'},
'ADDPD': {'name': 'ADDPD','url': 'http://www.felixcloutier.com/x86/ADDPD.html','description': 'Add Packed Double-Precision Floating-Point Values'},
'ADDPS': {'name': 'ADDPS','url': 'http://www.felixcloutier.com/x86/ADDPS.html','description': 'Add Packed Single-Precision Floating-Point Values'},
'ADDSD': {'name': 'ADDSD','url': 'http://www.felixcloutier.com/x86/ADDSD.html','description': 'Add Scalar Double-Precision Floating-Point Values'},
'ADDSS': {'name': 'ADDSS','url': 'http://www.felixcloutier.com/x86/ADDSS.html','description': 'Add Scalar Single-Precision Floating-Point Values'},
'ADDSUBPD': {'name': 'ADDSUBPD','url': 'http://www.felixcloutier.com/x86/ADDSUBPD.html','description': 'Packed Double-FP Add/Subtract'},
'ADDSUBPS': {'name': 'ADDSUBPS','url': 'http://www.felixcloutier.com/x86/ADDSUBPS.html','description': 'Packed Single-FP Add/Subtract'},
'AESDEC': {'name': 'AESDEC','url': 'http://www.felixcloutier.com/x86/AESDEC.html','description': 'Perform One Round of an AES Decryption Flow'},
'AESDECLAST': {'name': 'AESDECLAST','url': 'http://www.felixcloutier.com/x86/AESDECLAST.html','description': 'Perform Last Round of an AES Decryption Flow'},
'AESENC': {'name': 'AESENC','url': 'http://www.felixcloutier.com/x86/AESENC.html','description': 'Perform One Round of an AES Encryption Flow'},
'AESENCLAST': {'name': 'AESENCLAST','url': 'http://www.felixcloutier.com/x86/AESENCLAST.html','description': 'Perform Last Round of an AES Encryption Flow'},
'AESIMC': {'name': 'AESIMC','url': 'http://www.felixcloutier.com/x86/AESIMC.html','description': 'Perform the AES InvMixColumn Transformation'},
'AESKEYGENASSIST': {'name': 'AESKEYGENASSIST','url': 'http://www.felixcloutier.com/x86/AESKEYGENASSIST.html','description': 'AES Round Key Generation Assist'},
'AND': {'name': 'AND','url': 'http://www.felixcloutier.com/x86/AND.html','description': 'Logical AND'},
'ANDN': {'name': 'ANDN','url': 'http://www.felixcloutier.com/x86/ANDN.html','description': 'Logical AND NOT'},
'ANDNPD': {'name': 'ANDNPD','url': 'http://www.felixcloutier.com/x86/ANDNPD.html','description': 'Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values'},
'ANDNPS': {'name': 'ANDNPS','url': 'http://www.felixcloutier.com/x86/ANDNPS.html','description': 'Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values'},
'ANDPD': {'name': 'ANDPD','url': 'http://www.felixcloutier.com/x86/ANDPD.html','description': 'Bitwise Logical AND of Packed Double-Precision Floating-Point Values'},
'ANDPS': {'name': 'ANDPS','url': 'http://www.felixcloutier.com/x86/ANDPS.html','description': 'Bitwise Logical AND of Packed Single-Precision Floating-Point Values'},
'ARPL': {'name': 'ARPL','url': 'http://www.felixcloutier.com/x86/ARPL.html','description': 'Adjust RPL Field of Segment Selector'},
'BEXTR': {'name': 'BEXTR','url': 'http://www.felixcloutier.com/x86/BEXTR.html','description': 'Bit Field Extract'},
'BLENDPD': {'name': 'BLENDPD','url': 'http://www.felixcloutier.com/x86/BLENDPD.html','description': 'Blend Packed Double Precision Floating-Point Values'},
'BLENDPS': {'name': 'BLENDPS','url': 'http://www.felixcloutier.com/x86/BLENDPS.html','description': 'Blend Packed Single Precision Floating-Point Values'},
'BLENDVPD': {'name': 'BLENDVPD','url': 'http://www.felixcloutier.com/x86/BLENDVPD.html','description': 'Variable Blend Packed Double Precision Floating-Point Values'},
'BLENDVPS': {'name': 'BLENDVPS','url': 'http://www.felixcloutier.com/x86/BLENDVPS.html','description': 'Variable Blend Packed Single Precision Floating-Point Values'},
'BLSI': {'name': 'BLSI','url': 'http://www.felixcloutier.com/x86/BLSI.html','description': 'Extract Lowest Set Isolated Bit'},
'BLSMSK': {'name': 'BLSMSK','url': 'http://www.felixcloutier.com/x86/BLSMSK.html','description': 'Get Mask Up to Lowest Set Bit'},
'BLSR': {'name': 'BLSR','url': 'http://www.felixcloutier.com/x86/BLSR.html','description': 'Reset Lowest Set Bit'},
'BOUND': {'name': 'BOUND','url': 'http://www.felixcloutier.com/x86/BOUND.html','description': 'Check Array Index Against Bounds'},
'BSF': {'name': 'BSF','url': 'http://www.felixcloutier.com/x86/BSF.html','description': 'Bit Scan Forward'},
'BSR': {'name': 'BSR','url': 'http://www.felixcloutier.com/x86/BSR.html','description': 'Bit Scan Reverse'},
'BSWAP': {'name': 'BSWAP','url': 'http://www.felixcloutier.com/x86/BSWAP.html','description': 'Byte Swap'},
'BT': {'name': 'BT','url': 'http://www.felixcloutier.com/x86/BT.html','description': 'Bit Test'},
'BTC': {'name': 'BTC','url': 'http://www.felixcloutier.com/x86/BTC.html','description': 'Bit Test and Complement'},
'BTR': {'name': 'BTR','url': 'http://www.felixcloutier.com/x86/BTR.html','description': 'Bit Test and Reset'},
'BTS': {'name': 'BTS','url': 'http://www.felixcloutier.com/x86/BTS.html','description': 'Bit Test and Set'},
'BZHI': {'name': 'BZHI','url': 'http://www.felixcloutier.com/x86/BZHI.html','description': 'Zero High Bits Starting with Specified Bit Position'},
'CALL': {'name': 'CALL','url': 'http://www.felixcloutier.com/x86/CALL.html','description': 'Call Procedure'},
'CBW': {'name': 'CBW','url': 'http://www.felixcloutier.com/x86/CBW:CWDE:CDQE.html','description': 'Convert Byte to Word/Convert Word to Doubleword/Convert Doubleword to Quadword'},
'CWDE': {'name': 'CWDE','url': 'http://www.felixcloutier.com/x86/CBW:CWDE:CDQE.html','description': 'Convert Byte to Word/Convert Word to Doubleword/Convert Doubleword to Quadword'},
'CDQE': {'name': 'CDQE','url': 'http://www.felixcloutier.com/x86/CBW:CWDE:CDQE.html','description': 'Convert Byte to Word/Convert Word to Doubleword/Convert Doubleword to Quadword'},
'CLC': {'name': 'CLC','url': 'http://www.felixcloutier.com/x86/CLC.html','description': 'Clear Carry Flag'},
'CLD': {'name': 'CLD','url': 'http://www.felixcloutier.com/x86/CLD.html','description': 'Clear Direction Flag'},
'CLFLUSH': {'name': 'CLFLUSH','url': 'http://www.felixcloutier.com/x86/CLFLUSH.html','description': 'Flush Cache Line'},
'CLI': {'name': 'CLI','url': 'http://www.felixcloutier.com/x86/CLI.html','description': 'Clear Interrupt Flag'},
'CLTS': {'name': 'CLTS','url': 'http://www.felixcloutier.com/x86/CLTS.html','description': 'Clear Task-Switched Flag in CR0'},
'CMC': {'name': 'CMC','url': 'http://www.felixcloutier.com/x86/CMC.html','description': 'Complement Carry Flag'},
'CMOVcc': {'name': 'CMOVcc','url': 'http://www.felixcloutier.com/x86/CMOVcc.html','description': 'Conditional Move'},
'CMP': {'name': 'CMP','url': 'http://www.felixcloutier.com/x86/CMP.html','description': 'Compare Two Operands'},
'CMPPD': {'name': 'CMPPD','url': 'http://www.felixcloutier.com/x86/CMPPD.html','description': 'Compare Packed Double-Precision Floating-Point Values'},
'CMPPS': {'name': 'CMPPS','url': 'http://www.felixcloutier.com/x86/CMPPS.html','description': 'Compare Packed Single-Precision Floating-Point Values'},
'CMPS': {'name': 'CMPS','url': 'http://www.felixcloutier.com/x86/CMPS:CMPSB:CMPSW:CMPSD:CMPSQ.html','description': 'Compare String Operands'},
'CMPSB': {'name': 'CMPSB','url': 'http://www.felixcloutier.com/x86/CMPS:CMPSB:CMPSW:CMPSD:CMPSQ.html','description': 'Compare String Operands'},
'CMPSW': {'name': 'CMPSW','url': 'http://www.felixcloutier.com/x86/CMPS:CMPSB:CMPSW:CMPSD:CMPSQ.html','description': 'Compare String Operands'},
'CMPSD': {'name': 'CMPSD','url': 'http://www.felixcloutier.com/x86/CMPS:CMPSB:CMPSW:CMPSD:CMPSQ.html','description': 'Compare String Operands'},
'CMPSQ': {'name': 'CMPSQ','url': 'http://www.felixcloutier.com/x86/CMPS:CMPSB:CMPSW:CMPSD:CMPSQ.html','description': 'Compare String Operands'},
'CMPSD': {'name': 'CMPSD','url': 'http://www.felixcloutier.com/x86/CMPSD.html','description': 'Compare Scalar Double-Precision Floating-Point Values'},
'CMPSS': {'name': 'CMPSS','url': 'http://www.felixcloutier.com/x86/CMPSS.html','description': 'Compare Scalar Single-Precision Floating-Point Values'},
'CMPXCHG': {'name': 'CMPXCHG','url': 'http://www.felixcloutier.com/x86/CMPXCHG.html','description': 'Compare and Exchange'},
'CMPXCHG8B': {'name': 'CMPXCHG8B','url': 'http://www.felixcloutier.com/x86/CMPXCHG8B:CMPXCHG16B.html','description': 'Compare and Exchange Bytes'},
'CMPXCHG16B': {'name': 'CMPXCHG16B','url': 'http://www.felixcloutier.com/x86/CMPXCHG8B:CMPXCHG16B.html','description': 'Compare and Exchange Bytes'},
'COMISD': {'name': 'COMISD','url': 'http://www.felixcloutier.com/x86/COMISD.html','description': 'Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS'},
'COMISS': {'name': 'COMISS','url': 'http://www.felixcloutier.com/x86/COMISS.html','description': 'Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS'},
'CPUID': {'name': 'CPUID','url': 'http://www.felixcloutier.com/x86/CPUID.html','description': 'CPU Identification'},
'CRC32': {'name': 'CRC32','url': 'http://www.felixcloutier.com/x86/CRC32.html','description': 'Accumulate CRC32 Value'},
'CVTDQ2PD': {'name': 'CVTDQ2PD','url': 'http://www.felixcloutier.com/x86/CVTDQ2PD.html','description': 'Convert Packed Dword Integers to Packed Double-Precision FP Values'},
'CVTDQ2PS': {'name': 'CVTDQ2PS','url': 'http://www.felixcloutier.com/x86/CVTDQ2PS.html','description': 'Convert Packed Dword Integers to Packed Single-Precision FP Values'},
'CVTPD2DQ': {'name': 'CVTPD2DQ','url': 'http://www.felixcloutier.com/x86/CVTPD2DQ.html','description': 'Convert Packed Double-Precision FP Values to Packed Dword Integers'},
'CVTPD2PI': {'name': 'CVTPD2PI','url': 'http://www.felixcloutier.com/x86/CVTPD2PI.html','description': 'Convert Packed Double-Precision FP Values to Packed Dword Integers'},
'CVTPD2PS': {'name': 'CVTPD2PS','url': 'http://www.felixcloutier.com/x86/CVTPD2PS.html','description': 'Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values'},
'CVTPI2PD': {'name': 'CVTPI2PD','url': 'http://www.felixcloutier.com/x86/CVTPI2PD.html','description': 'Convert Packed Dword Integers to Packed Double-Precision FP Values'},
'CVTPI2PS': {'name': 'CVTPI2PS','url': 'http://www.felixcloutier.com/x86/CVTPI2PS.html','description': 'Convert Packed Dword Integers to Packed Single-Precision FP Values'},
'CVTPS2DQ': {'name': 'CVTPS2DQ','url': 'http://www.felixcloutier.com/x86/CVTPS2DQ.html','description': 'Convert Packed Single-Precision FP Values to Packed Dword Integers'},
'CVTPS2PD': {'name': 'CVTPS2PD','url': 'http://www.felixcloutier.com/x86/CVTPS2PD.html','description': 'Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values'},
'CVTPS2PI': {'name': 'CVTPS2PI','url': 'http://www.felixcloutier.com/x86/CVTPS2PI.html','description': 'Convert Packed Single-Precision FP Values to Packed Dword Integers'},
'CVTSD2SI': {'name': 'CVTSD2SI','url': 'http://www.felixcloutier.com/x86/CVTSD2SI.html','description': 'Convert Scalar Double-Precision FP Value to Integer'},
'CVTSD2SS': {'name': 'CVTSD2SS','url': 'http://www.felixcloutier.com/x86/CVTSD2SS.html','description': 'Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value'},
'CVTSI2SD': {'name': 'CVTSI2SD','url': 'http://www.felixcloutier.com/x86/CVTSI2SD.html','description': 'Convert Dword Integer to Scalar Double-Precision FP Value'},
'CVTSI2SS': {'name': 'CVTSI2SS','url': 'http://www.felixcloutier.com/x86/CVTSI2SS.html','description': 'Convert Dword Integer to Scalar Single-Precision FP Value'},
'CVTSS2SD': {'name': 'CVTSS2SD','url': 'http://www.felixcloutier.com/x86/CVTSS2SD.html','description': 'Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value'},
'CVTSS2SI': {'name': 'CVTSS2SI','url': 'http://www.felixcloutier.com/x86/CVTSS2SI.html','description': 'Convert Scalar Single-Precision FP Value to Dword Integer'},
'CVTTPD2DQ': {'name': 'CVTTPD2DQ','url': 'http://www.felixcloutier.com/x86/CVTTPD2DQ.html','description': 'Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers'},
'CVTTPD2PI': {'name': 'CVTTPD2PI','url': 'http://www.felixcloutier.com/x86/CVTTPD2PI.html','description': 'Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers'},
'CVTTPS2DQ': {'name': 'CVTTPS2DQ','url': 'http://www.felixcloutier.com/x86/CVTTPS2DQ.html','description': 'Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers'},
'CVTTPS2PI': {'name': 'CVTTPS2PI','url': 'http://www.felixcloutier.com/x86/CVTTPS2PI.html','description': 'Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers'},
'CVTTSD2SI': {'name': 'CVTTSD2SI','url': 'http://www.felixcloutier.com/x86/CVTTSD2SI.html','description': 'Convert with Truncation Scalar Double-Precision FP Value to Signed Integer'},
'CVTTSS2SI': {'name': 'CVTTSS2SI','url': 'http://www.felixcloutier.com/x86/CVTTSS2SI.html','description': 'Convert with Truncation Scalar Single-Precision FP Value to Dword Integer'},
'CWD': {'name': 'CWD','url': 'http://www.felixcloutier.com/x86/CWD:CDQ:CQO.html','description': 'Convert Word to Doubleword/Convert Doubleword to Quadword'},
'CDQ': {'name': 'CDQ','url': 'http://www.felixcloutier.com/x86/CWD:CDQ:CQO.html','description': 'Convert Word to Doubleword/Convert Doubleword to Quadword'},
'CQO': {'name': 'CQO','url': 'http://www.felixcloutier.com/x86/CWD:CDQ:CQO.html','description': 'Convert Word to Doubleword/Convert Doubleword to Quadword'},
'DAA': {'name': 'DAA','url': 'http://www.felixcloutier.com/x86/DAA.html','description': 'Decimal Adjust AL after Addition'},
'DAS': {'name': 'DAS','url': 'http://www.felixcloutier.com/x86/DAS.html','description': 'Decimal Adjust AL after Subtraction'},
'DEC': {'name': 'DEC','url': 'http://www.felixcloutier.com/x86/DEC.html','description': 'Decrement by 1'},
'DIV': {'name': 'DIV','url': 'http://www.felixcloutier.com/x86/DIV.html','description': 'Unsigned Divide'},
'DIVPD': {'name': 'DIVPD','url': 'http://www.felixcloutier.com/x86/DIVPD.html','description': 'Divide Packed Double-Precision Floating-Point Values'},
'DIVPS': {'name': 'DIVPS','url': 'http://www.felixcloutier.com/x86/DIVPS.html','description': 'Divide Packed Single-Precision Floating-Point Values'},
'DIVSD': {'name': 'DIVSD','url': 'http://www.felixcloutier.com/x86/DIVSD.html','description': 'Divide Scalar Double-Precision Floating-Point Values'},
'DIVSS': {'name': 'DIVSS','url': 'http://www.felixcloutier.com/x86/DIVSS.html','description': 'Divide Scalar Single-Precision Floating-Point Values'},
'DPPD': {'name': 'DPPD','url': 'http://www.felixcloutier.com/x86/DPPD.html','description': 'Dot Product of Packed Double Precision Floating-Point Values'},
'DPPS': {'name': 'DPPS','url': 'http://www.felixcloutier.com/x86/DPPS.html','description': 'Dot Product of Packed Single Precision Floating-Point Values'},
'EMMS': {'name': 'EMMS','url': 'http://www.felixcloutier.com/x86/EMMS.html','description': 'Empty MMX Technology State'},
'ENTER': {'name': 'ENTER','url': 'http://www.felixcloutier.com/x86/ENTER.html','description': 'Make Stack Frame for Procedure Parameters'},
'EXTRACTPS': {'name': 'EXTRACTPS','url': 'http://www.felixcloutier.com/x86/EXTRACTPS.html','description': 'Extract Packed Single Precision Floating-Point Value'},
'F2XM1': {'name': 'F2XM1','url': 'http://www.felixcloutier.com/x86/F2XM1.html','description': 'Compute 2x-1'},
'FABS': {'name': 'FABS','url': 'http://www.felixcloutier.com/x86/FABS.html','description': 'Absolute Value'},
'FADD': {'name': 'FADD','url': 'http://www.felixcloutier.com/x86/FADD:FADDP:FIADD.html','description': 'Add'},
'FADDP': {'name': 'FADDP','url': 'http://www.felixcloutier.com/x86/FADD:FADDP:FIADD.html','description': 'Add'},
'FIADD': {'name': 'FIADD','url': 'http://www.felixcloutier.com/x86/FADD:FADDP:FIADD.html','description': 'Add'},
'FBLD': {'name': 'FBLD','url': 'http://www.felixcloutier.com/x86/FBLD.html','description': 'Load Binary Coded Decimal'},
'FBSTP': {'name': 'FBSTP','url': 'http://www.felixcloutier.com/x86/FBSTP.html','description': 'Store BCD Integer and Pop'},
'FCHS': {'name': 'FCHS','url': 'http://www.felixcloutier.com/x86/FCHS.html','description': 'Change Sign'},
'FCLEX': {'name': 'FCLEX','url': 'http://www.felixcloutier.com/x86/FCLEX:FNCLEX.html','description': 'Clear Exceptions'},
'FNCLEX': {'name': 'FNCLEX','url': 'http://www.felixcloutier.com/x86/FCLEX:FNCLEX.html','description': 'Clear Exceptions'},
'FCMOVcc': {'name': 'FCMOVcc','url': 'http://www.felixcloutier.com/x86/FCMOVcc.html','description': 'Floating-Point Conditional Move'},
'FCOM': {'name': 'FCOM','url': 'http://www.felixcloutier.com/x86/FCOM:FCOMP:FCOMPP.html','description': 'Compare Floating Point Values'},
'FCOMP': {'name': 'FCOMP','url': 'http://www.felixcloutier.com/x86/FCOM:FCOMP:FCOMPP.html','description': 'Compare Floating Point Values'},
'FCOMPP': {'name': 'FCOMPP','url': 'http://www.felixcloutier.com/x86/FCOM:FCOMP:FCOMPP.html','description': 'Compare Floating Point Values'},
'FCOMI': {'name': 'FCOMI','url': 'http://www.felixcloutier.com/x86/FCOMI:FCOMIP:FUCOMI:FUCOMIP.html','description': 'Compare Floating Point Values and Set EFLAGS'},
'FCOMIP': {'name': 'FCOMIP','url': 'http://www.felixcloutier.com/x86/FCOMI:FCOMIP:FUCOMI:FUCOMIP.html','description': 'Compare Floating Point Values and Set EFLAGS'},
'FUCOMI': {'name': 'FUCOMI','url': 'http://www.felixcloutier.com/x86/FCOMI:FCOMIP:FUCOMI:FUCOMIP.html','description': 'Compare Floating Point Values and Set EFLAGS'},
'FUCOMIP': {'name': 'FUCOMIP','url': 'http://www.felixcloutier.com/x86/FCOMI:FCOMIP:FUCOMI:FUCOMIP.html','description': 'Compare Floating Point Values and Set EFLAGS'},
'FCOS': {'name': 'FCOS','url': 'http://www.felixcloutier.com/x86/FCOS.html','description': 'Cosine'},
'FDECSTP': {'name': 'FDECSTP','url': 'http://www.felixcloutier.com/x86/FDECSTP.html','description': 'Decrement Stack-Top Pointer'},
'FDIV': {'name': 'FDIV','url': 'http://www.felixcloutier.com/x86/FDIV:FDIVP:FIDIV.html','description': 'Divide'},
'FDIVP': {'name': 'FDIVP','url': 'http://www.felixcloutier.com/x86/FDIV:FDIVP:FIDIV.html','description': 'Divide'},
'FIDIV': {'name': 'FIDIV','url': 'http://www.felixcloutier.com/x86/FDIV:FDIVP:FIDIV.html','description': 'Divide'},
'FDIVR': {'name': 'FDIVR','url': 'http://www.felixcloutier.com/x86/FDIVR:FDIVRP:FIDIVR.html','description': 'Reverse Divide'},
'FDIVRP': {'name': 'FDIVRP','url': 'http://www.felixcloutier.com/x86/FDIVR:FDIVRP:FIDIVR.html','description': 'Reverse Divide'},
'FIDIVR': {'name': 'FIDIVR','url': 'http://www.felixcloutier.com/x86/FDIVR:FDIVRP:FIDIVR.html','description': 'Reverse Divide'},
'FFREE': {'name': 'FFREE','url': 'http://www.felixcloutier.com/x86/FFREE.html','description': 'Free Floating-Point Register'},
'FICOM': {'name': 'FICOM','url': 'http://www.felixcloutier.com/x86/FICOM:FICOMP.html','description': 'Compare Integer'},
'FICOMP': {'name': 'FICOMP','url': 'http://www.felixcloutier.com/x86/FICOM:FICOMP.html','description': 'Compare Integer'},
'FILD': {'name': 'FILD','url': 'http://www.felixcloutier.com/x86/FILD.html','description': 'Load Integer'},
'FINCSTP': {'name': 'FINCSTP','url': 'http://www.felixcloutier.com/x86/FINCSTP.html','description': 'Increment Stack-Top Pointer'},
'FINIT': {'name': 'FINIT','url': 'http://www.felixcloutier.com/x86/FINIT:FNINIT.html','description': 'Initialize Floating-Point Unit'},
'FNINIT': {'name': 'FNINIT','url': 'http://www.felixcloutier.com/x86/FINIT:FNINIT.html','description': 'Initialize Floating-Point Unit'},
'FIST': {'name': 'FIST','url': 'http://www.felixcloutier.com/x86/FIST:FISTP.html','description': 'Store Integer'},
'FISTP': {'name': 'FISTP','url': 'http://www.felixcloutier.com/x86/FIST:FISTP.html','description': 'Store Integer'},
'FISTTP': {'name': 'FISTTP','url': 'http://www.felixcloutier.com/x86/FISTTP.html','description': 'Store Integer with Truncation'},
'FLD': {'name': 'FLD','url': 'http://www.felixcloutier.com/x86/FLD.html','description': 'Load Floating Point Value'},
'FLD1': {'name': 'FLD1','url': 'http://www.felixcloutier.com/x86/FLD1:FLDL2T:FLDL2E:FLDPI:FLDLG2:FLDLN2:FLDZ.html','description': 'Load Constant'},
'FLDL2T': {'name': 'FLDL2T','url': 'http://www.felixcloutier.com/x86/FLD1:FLDL2T:FLDL2E:FLDPI:FLDLG2:FLDLN2:FLDZ.html','description': 'Load Constant'},
'FLDL2E': {'name': 'FLDL2E','url': 'http://www.felixcloutier.com/x86/FLD1:FLDL2T:FLDL2E:FLDPI:FLDLG2:FLDLN2:FLDZ.html','description': 'Load Constant'},
'FLDPI': {'name': 'FLDPI','url': 'http://www.felixcloutier.com/x86/FLD1:FLDL2T:FLDL2E:FLDPI:FLDLG2:FLDLN2:FLDZ.html','description': 'Load Constant'},
'FLDLG2': {'name': 'FLDLG2','url': 'http://www.felixcloutier.com/x86/FLD1:FLDL2T:FLDL2E:FLDPI:FLDLG2:FLDLN2:FLDZ.html','description': 'Load Constant'},
'FLDLN2': {'name': 'FLDLN2','url': 'http://www.felixcloutier.com/x86/FLD1:FLDL2T:FLDL2E:FLDPI:FLDLG2:FLDLN2:FLDZ.html','description': 'Load Constant'},
'FLDZ': {'name': 'FLDZ','url': 'http://www.felixcloutier.com/x86/FLD1:FLDL2T:FLDL2E:FLDPI:FLDLG2:FLDLN2:FLDZ.html','description': 'Load Constant'},
'FLDCW': {'name': 'FLDCW','url': 'http://www.felixcloutier.com/x86/FLDCW.html','description': 'Load x87 FPU Control Word'},
'FLDENV': {'name': 'FLDENV','url': 'http://www.felixcloutier.com/x86/FLDENV.html','description': 'Load x87 FPU Environment'},
'FMUL': {'name': 'FMUL','url': 'http://www.felixcloutier.com/x86/FMUL:FMULP:FIMUL.html','description': 'Multiply'},
'FMULP': {'name': 'FMULP','url': 'http://www.felixcloutier.com/x86/FMUL:FMULP:FIMUL.html','description': 'Multiply'},
'FIMUL': {'name': 'FIMUL','url': 'http://www.felixcloutier.com/x86/FMUL:FMULP:FIMUL.html','description': 'Multiply'},
'FNOP': {'name': 'FNOP','url': 'http://www.felixcloutier.com/x86/FNOP.html','description': 'No Operation'},
'FPATAN': {'name': 'FPATAN','url': 'http://www.felixcloutier.com/x86/FPATAN.html','description': 'Partial Arctangent'},
'FPREM': {'name': 'FPREM','url': 'http://www.felixcloutier.com/x86/FPREM.html','description': 'Partial Remainder'},
'FPREM1': {'name': 'FPREM1','url': 'http://www.felixcloutier.com/x86/FPREM1.html','description': 'Partial Remainder'},
'FPTAN': {'name': 'FPTAN','url': 'http://www.felixcloutier.com/x86/FPTAN.html','description': 'Partial Tangent'},
'FRNDINT': {'name': 'FRNDINT','url': 'http://www.felixcloutier.com/x86/FRNDINT.html','description': 'Round to Integer'},
'FRSTOR': {'name': 'FRSTOR','url': 'http://www.felixcloutier.com/x86/FRSTOR.html','description': 'Restore x87 FPU State'},
'FSAVE': {'name': 'FSAVE','url': 'http://www.felixcloutier.com/x86/FSAVE:FNSAVE.html','description': 'Store x87 FPU State'},
'FNSAVE': {'name': 'FNSAVE','url': 'http://www.felixcloutier.com/x86/FSAVE:FNSAVE.html','description': 'Store x87 FPU State'},
'FSCALE': {'name': 'FSCALE','url': 'http://www.felixcloutier.com/x86/FSCALE.html','description': 'Scale'},
'FSIN': {'name': 'FSIN','url': 'http://www.felixcloutier.com/x86/FSIN.html','description': 'Sine'},
'FSINCOS': {'name': 'FSINCOS','url': 'http://www.felixcloutier.com/x86/FSINCOS.html','description': 'Sine and Cosine'},
'FSQRT': {'name': 'FSQRT','url': 'http://www.felixcloutier.com/x86/FSQRT.html','description': 'Square Root'},
'FST': {'name': 'FST','url': 'http://www.felixcloutier.com/x86/FST:FSTP.html','description': 'Store Floating Point Value'},
'FSTP': {'name': 'FSTP','url': 'http://www.felixcloutier.com/x86/FST:FSTP.html','description': 'Store Floating Point Value'},
'FSTCW': {'name': 'FSTCW','url': 'http://www.felixcloutier.com/x86/FSTCW:FNSTCW.html','description': 'Store x87 FPU Control Word'},
'FNSTCW': {'name': 'FNSTCW','url': 'http://www.felixcloutier.com/x86/FSTCW:FNSTCW.html','description': 'Store x87 FPU Control Word'},
'FSTENV': {'name': 'FSTENV','url': 'http://www.felixcloutier.com/x86/FSTENV:FNSTENV.html','description': 'Store x87 FPU Environment'},
'FNSTENV': {'name': 'FNSTENV','url': 'http://www.felixcloutier.com/x86/FSTENV:FNSTENV.html','description': 'Store x87 FPU Environment'},
'FSTSW': {'name': 'FSTSW','url': 'http://www.felixcloutier.com/x86/FSTSW:FNSTSW.html','description': 'Store x87 FPU Status Word'},
'FNSTSW': {'name': 'FNSTSW','url': 'http://www.felixcloutier.com/x86/FSTSW:FNSTSW.html','description': 'Store x87 FPU Status Word'},
'FSUB': {'name': 'FSUB','url': 'http://www.felixcloutier.com/x86/FSUB:FSUBP:FISUB.html','description': 'Subtract'},
'FSUBP': {'name': 'FSUBP','url': 'http://www.felixcloutier.com/x86/FSUB:FSUBP:FISUB.html','description': 'Subtract'},
'FISUB': {'name': 'FISUB','url': 'http://www.felixcloutier.com/x86/FSUB:FSUBP:FISUB.html','description': 'Subtract'},
'FSUBR': {'name': 'FSUBR','url': 'http://www.felixcloutier.com/x86/FSUBR:FSUBRP:FISUBR.html','description': 'Reverse Subtract'},
'FSUBRP': {'name': 'FSUBRP','url': 'http://www.felixcloutier.com/x86/FSUBR:FSUBRP:FISUBR.html','description': 'Reverse Subtract'},
'FISUBR': {'name': 'FISUBR','url': 'http://www.felixcloutier.com/x86/FSUBR:FSUBRP:FISUBR.html','description': 'Reverse Subtract'},
'FTST': {'name': 'FTST','url': 'http://www.felixcloutier.com/x86/FTST.html','description': 'TEST'},
'FUCOM': {'name': 'FUCOM','url': 'http://www.felixcloutier.com/x86/FUCOM:FUCOMP:FUCOMPP.html','description': 'Unordered Compare Floating Point Values'},
'FUCOMP': {'name': 'FUCOMP','url': 'http://www.felixcloutier.com/x86/FUCOM:FUCOMP:FUCOMPP.html','description': 'Unordered Compare Floating Point Values'},
'FUCOMPP': {'name': 'FUCOMPP','url': 'http://www.felixcloutier.com/x86/FUCOM:FUCOMP:FUCOMPP.html','description': 'Unordered Compare Floating Point Values'},
'FXAM': {'name': 'FXAM','url': 'http://www.felixcloutier.com/x86/FXAM.html','description': 'Examine ModR/M'},
'FXCH': {'name': 'FXCH','url': 'http://www.felixcloutier.com/x86/FXCH.html','description': 'Exchange Register Contents'},
'FXRSTOR': {'name': 'FXRSTOR','url': 'http://www.felixcloutier.com/x86/FXRSTOR.html','description': 'Restore x87 FPU, MMX , XMM, and MXCSR State'},
'FXSAVE': {'name': 'FXSAVE','url': 'http://www.felixcloutier.com/x86/FXSAVE.html','description': 'Save x87 FPU, MMX Technology, and SSE State'},
'FXTRACT': {'name': 'FXTRACT','url': 'http://www.felixcloutier.com/x86/FXTRACT.html','description': 'Extract Exponent and Significand'},
'FYL2X': {'name': 'FYL2X','url': 'http://www.felixcloutier.com/x86/FYL2X.html','description': 'Compute y ∗ log2x'},
'FYL2XP1': {'name': 'FYL2XP1','url': 'http://www.felixcloutier.com/x86/FYL2XP1.html','description': 'Compute y ∗ log2(x +1)'},
'HADDPD': {'name': 'HADDPD','url': 'http://www.felixcloutier.com/x86/HADDPD.html','description': 'Packed Double-FP Horizontal Add'},
'HADDPS': {'name': 'HADDPS','url': 'http://www.felixcloutier.com/x86/HADDPS.html','description': 'Packed Single-FP Horizontal Add'},
'HLT': {'name': 'HLT','url': 'http://www.felixcloutier.com/x86/HLT.html','description': 'Halt'},
'HSUBPD': {'name': 'HSUBPD','url': 'http://www.felixcloutier.com/x86/HSUBPD.html','description': 'Packed Double-FP Horizontal Subtract'},
'HSUBPS': {'name': 'HSUBPS','url': 'http://www.felixcloutier.com/x86/HSUBPS.html','description': 'Packed Single-FP Horizontal Subtract'},
'IDIV': {'name': 'IDIV','url': 'http://www.felixcloutier.com/x86/IDIV.html','description': 'Signed Divide'},
'IMUL': {'name': 'IMUL','url': 'http://www.felixcloutier.com/x86/IMUL.html','description': 'Signed Multiply'},
'IN': {'name': 'IN','url': 'http://www.felixcloutier.com/x86/IN.html','description': 'Input from Port'},
'INC': {'name': 'INC','url': 'http://www.felixcloutier.com/x86/INC.html','description': 'Increment by 1'},
'INS': {'name': 'INS','url': 'http://www.felixcloutier.com/x86/INS:INSB:INSW:INSD.html','description': 'Input from Port to String'},
'INSB': {'name': 'INSB','url': 'http://www.felixcloutier.com/x86/INS:INSB:INSW:INSD.html','description': 'Input from Port to String'},
'INSW': {'name': 'INSW','url': 'http://www.felixcloutier.com/x86/INS:INSB:INSW:INSD.html','description': 'Input from Port to String'},
'INSD': {'name': 'INSD','url': 'http://www.felixcloutier.com/x86/INS:INSB:INSW:INSD.html','description': 'Input from Port to String'},
'INSERTPS': {'name': 'INSERTPS','url': 'http://www.felixcloutier.com/x86/INSERTPS.html','description': 'Insert Packed Single Precision Floating-Point Value'},
'INT n': {'name': 'INT n','url': 'http://www.felixcloutier.com/x86/INT%20n:INTO:INT%203.html','description': 'Call to Interrupt Procedure'},
'INTO': {'name': 'INTO','url': 'http://www.felixcloutier.com/x86/INT%20n:INTO:INT%203.html','description': 'Call to Interrupt Procedure'},
'INT 3': {'name': 'INT 3','url': 'http://www.felixcloutier.com/x86/INT%20n:INTO:INT%203.html','description': 'Call to Interrupt Procedure'},
'INVD': {'name': 'INVD','url': 'http://www.felixcloutier.com/x86/INVD.html','description': 'Invalidate Internal Caches'},
'INVLPG': {'name': 'INVLPG','url': 'http://www.felixcloutier.com/x86/INVLPG.html','description': 'Invalidate TLB Entry'},
'INVPCID': {'name': 'INVPCID','url': 'http://www.felixcloutier.com/x86/INVPCID.html','description': 'Invalidate Process-Context Identifier'},
'IRET': {'name': 'IRET','url': 'http://www.felixcloutier.com/x86/IRET:IRETD.html','description': 'Interrupt Return'},
'IRETD': {'name': 'IRETD','url': 'http://www.felixcloutier.com/x86/IRET:IRETD.html','description': 'Interrupt Return'},
'JMP': {'name': 'JMP','url': 'http://www.felixcloutier.com/x86/JMP.html','description': 'Jump'},
'Jcc': {'name': 'Jcc','url': 'http://www.felixcloutier.com/x86/Jcc.html','description': 'Jump if Condition Is Met'},
'LAHF': {'name': 'LAHF','url': 'http://www.felixcloutier.com/x86/LAHF.html','description': 'Load Status Flags into AH Register'},
'LAR': {'name': 'LAR','url': 'http://www.felixcloutier.com/x86/LAR.html','description': 'Load Access Rights Byte'},
'LDDQU': {'name': 'LDDQU','url': 'http://www.felixcloutier.com/x86/LDDQU.html','description': 'Load Unaligned Integer 128 Bits'},
'LDMXCSR': {'name': 'LDMXCSR','url': 'http://www.felixcloutier.com/x86/LDMXCSR.html','description': 'Load MXCSR Register'},
'LDS': {'name': 'LDS','url': 'http://www.felixcloutier.com/x86/LDS:LES:LFS:LGS:LSS.html','description': 'Load Far Pointer'},
'LES': {'name': 'LES','url': 'http://www.felixcloutier.com/x86/LDS:LES:LFS:LGS:LSS.html','description': 'Load Far Pointer'},
'LFS': {'name': 'LFS','url': 'http://www.felixcloutier.com/x86/LDS:LES:LFS:LGS:LSS.html','description': 'Load Far Pointer'},
'LGS': {'name': 'LGS','url': 'http://www.felixcloutier.com/x86/LDS:LES:LFS:LGS:LSS.html','description': 'Load Far Pointer'},
'LSS': {'name': 'LSS','url': 'http://www.felixcloutier.com/x86/LDS:LES:LFS:LGS:LSS.html','description': 'Load Far Pointer'},
'LEA': {'name': 'LEA','url': 'http://www.felixcloutier.com/x86/LEA.html','description': 'Load Effective Address'},
'LEAVE': {'name': 'LEAVE','url': 'http://www.felixcloutier.com/x86/LEAVE.html','description': 'High Level Procedure Exit'},
'LFENCE': {'name': 'LFENCE','url': 'http://www.felixcloutier.com/x86/LFENCE.html','description': 'Load Fence'},
'LGDT': {'name': 'LGDT','url': 'http://www.felixcloutier.com/x86/LGDT:LIDT.html','description': 'Load Global/Interrupt Descriptor Table Register'},
'LIDT': {'name': 'LIDT','url': 'http://www.felixcloutier.com/x86/LGDT:LIDT.html','description': 'Load Global/Interrupt Descriptor Table Register'},
'LLDT': {'name': 'LLDT','url': 'http://www.felixcloutier.com/x86/LLDT.html','description': 'Load Local Descriptor Table Register'},
'LMSW': {'name': 'LMSW','url': 'http://www.felixcloutier.com/x86/LMSW.html','description': 'Load Machine Status Word'},
'LOCK': {'name': 'LOCK','url': 'http://www.felixcloutier.com/x86/LOCK.html','description': 'Assert LOCK# Signal Prefix'},
'LODS': {'name': 'LODS','url': 'http://www.felixcloutier.com/x86/LODS:LODSB:LODSW:LODSD:LODSQ.html','description': 'Load String'},
'LODSB': {'name': 'LODSB','url': 'http://www.felixcloutier.com/x86/LODS:LODSB:LODSW:LODSD:LODSQ.html','description': 'Load String'},
'LODSW': {'name': 'LODSW','url': 'http://www.felixcloutier.com/x86/LODS:LODSB:LODSW:LODSD:LODSQ.html','description': 'Load String'},
'LODSD': {'name': 'LODSD','url': 'http://www.felixcloutier.com/x86/LODS:LODSB:LODSW:LODSD:LODSQ.html','description': 'Load String'},
'LODSQ': {'name': 'LODSQ','url': 'http://www.felixcloutier.com/x86/LODS:LODSB:LODSW:LODSD:LODSQ.html','description': 'Load String'},
'LOOP': {'name': 'LOOP','url': 'http://www.felixcloutier.com/x86/LOOP:LOOPcc.html','description': 'Loop According to ECX Counter'},
'LOOPcc': {'name': 'LOOPcc','url': 'http://www.felixcloutier.com/x86/LOOP:LOOPcc.html','description': 'Loop According to ECX Counter'},
'LSL': {'name': 'LSL','url': 'http://www.felixcloutier.com/x86/LSL.html','description': 'Load Segment Limit'},
'LTR': {'name': 'LTR','url': 'http://www.felixcloutier.com/x86/LTR.html','description': 'Load Task Register'},
'LZCNT': {'name': 'LZCNT','url': 'http://www.felixcloutier.com/x86/LZCNT.html','description': 'Count the Number of Leading Zero Bits'},
'MASKMOVDQU': {'name': 'MASKMOVDQU','url': 'http://www.felixcloutier.com/x86/MASKMOVDQU.html','description': 'Store Selected Bytes of Double Quadword'},
'MASKMOVQ': {'name': 'MASKMOVQ','url': 'http://www.felixcloutier.com/x86/MASKMOVQ.html','description': 'Store Selected Bytes of Quadword'},
'MAXPD': {'name': 'MAXPD','url': 'http://www.felixcloutier.com/x86/MAXPD.html','description': 'Return Maximum Packed Double-Precision Floating-Point Values'},
'MAXPS': {'name': 'MAXPS','url': 'http://www.felixcloutier.com/x86/MAXPS.html','description': 'Return Maximum Packed Single-Precision Floating-Point Values'},
'MAXSD': {'name': 'MAXSD','url': 'http://www.felixcloutier.com/x86/MAXSD.html','description': 'Return Maximum Scalar Double-Precision Floating-Point Value'},
'MAXSS': {'name': 'MAXSS','url': 'http://www.felixcloutier.com/x86/MAXSS.html','description': 'Return Maximum Scalar Single-Precision Floating-Point Value'},
'MFENCE': {'name': 'MFENCE','url': 'http://www.felixcloutier.com/x86/MFENCE.html','description': 'Memory Fence'},
'MINPD': {'name': 'MINPD','url': 'http://www.felixcloutier.com/x86/MINPD.html','description': 'Return Minimum Packed Double-Precision Floating-Point Values'},
'MINPS': {'name': 'MINPS','url': 'http://www.felixcloutier.com/x86/MINPS.html','description': 'Return Minimum Packed Single-Precision Floating-Point Values'},
'MINSD': {'name': 'MINSD','url': 'http://www.felixcloutier.com/x86/MINSD.html','description': 'Return Minimum Scalar Double-Precision Floating-Point Value'},
'MINSS': {'name': 'MINSS','url': 'http://www.felixcloutier.com/x86/MINSS.html','description': 'Return Minimum Scalar Single-Precision Floating-Point Value'},
'MONITOR': {'name': 'MONITOR','url': 'http://www.felixcloutier.com/x86/MONITOR.html','description': 'Set Up Monitor Address'},
'MOV': {'name': 'MOV','url': 'http://www.felixcloutier.com/x86/MOV-1.html','description': 'Move to/from Control Registers'},
'MOV': {'name': 'MOV','url': 'http://www.felixcloutier.com/x86/MOV-2.html','description': 'Move to/from Debug Registers'},
'MOV': {'name': 'MOV','url': 'http://www.felixcloutier.com/x86/MOV.html','description': 'Move'},
'MOVAPD': {'name': 'MOVAPD','url': 'http://www.felixcloutier.com/x86/MOVAPD.html','description': 'Move Aligned Packed Double-Precision Floating-Point Values'},
'MOVAPS': {'name': 'MOVAPS','url': 'http://www.felixcloutier.com/x86/MOVAPS.html','description': 'Move Aligned Packed Single-Precision Floating-Point Values'},
'MOVBE': {'name': 'MOVBE','url': 'http://www.felixcloutier.com/x86/MOVBE.html','description': 'Move Data After Swapping Bytes'},
'MOVD': {'name': 'MOVD','url': 'http://www.felixcloutier.com/x86/MOVD:MOVQ.html','description': 'Move Doubleword/Move Quadword'},
'MOVQ': {'name': 'MOVQ','url': 'http://www.felixcloutier.com/x86/MOVD:MOVQ.html','description': 'Move Doubleword/Move Quadword'},
'MOVDDUP': {'name': 'MOVDDUP','url': 'http://www.felixcloutier.com/x86/MOVDDUP.html','description': 'Move One Double-FP and Duplicate'},
'MOVDQ2Q': {'name': 'MOVDQ2Q','url': 'http://www.felixcloutier.com/x86/MOVDQ2Q.html','description': 'Move Quadword from XMM to MMX Technology Register'},
'MOVDQA': {'name': 'MOVDQA','url': 'http://www.felixcloutier.com/x86/MOVDQA.html','description': 'Move Aligned Double Quadword'},
'MOVDQU': {'name': 'MOVDQU','url': 'http://www.felixcloutier.com/x86/MOVDQU.html','description': 'Move Unaligned Double Quadword'},
'MOVHLPS': {'name': 'MOVHLPS','url': 'http://www.felixcloutier.com/x86/MOVHLPS.html','description': 'Move Packed Single-Precision Floating-Point Values High to Low'},
'MOVHPD': {'name': 'MOVHPD','url': 'http://www.felixcloutier.com/x86/MOVHPD.html','description': 'Move High Packed Double-Precision Floating-Point Value'},
'MOVHPS': {'name': 'MOVHPS','url': 'http://www.felixcloutier.com/x86/MOVHPS.html','description': 'Move High Packed Single-Precision Floating-Point Values'},
'MOVLHPS': {'name': 'MOVLHPS','url': 'http://www.felixcloutier.com/x86/MOVLHPS.html','description': 'Move Packed Single-Precision Floating-Point Values Low to High'},
'MOVLPD': {'name': 'MOVLPD','url': 'http://www.felixcloutier.com/x86/MOVLPD.html','description': 'Move Low Packed Double-Precision Floating-Point Value'},
'MOVLPS': {'name': 'MOVLPS','url': 'http://www.felixcloutier.com/x86/MOVLPS.html','description': 'Move Low Packed Single-Precision Floating-Point Values'},
'MOVMSKPD': {'name': 'MOVMSKPD','url': 'http://www.felixcloutier.com/x86/MOVMSKPD.html','description': 'Extract Packed Double-Precision Floating-Point Sign Mask'},
'MOVMSKPS': {'name': 'MOVMSKPS','url': 'http://www.felixcloutier.com/x86/MOVMSKPS.html','description': 'Extract Packed Single-Precision Floating-Point Sign Mask'},
'MOVNTDQ': {'name': 'MOVNTDQ','url': 'http://www.felixcloutier.com/x86/MOVNTDQ.html','description': 'Store Double Quadword Using Non-Temporal Hint'},
'MOVNTDQA': {'name': 'MOVNTDQA','url': 'http://www.felixcloutier.com/x86/MOVNTDQA.html','description': 'Load Double Quadword Non-Temporal Aligned Hint'},
'MOVNTI': {'name': 'MOVNTI','url': 'http://www.felixcloutier.com/x86/MOVNTI.html','description': 'Store Doubleword Using Non-Temporal Hint'},
'MOVNTPD': {'name': 'MOVNTPD','url': 'http://www.felixcloutier.com/x86/MOVNTPD.html','description': 'Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint'},
'MOVNTPS': {'name': 'MOVNTPS','url': 'http://www.felixcloutier.com/x86/MOVNTPS.html','description': 'Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint'},
'MOVNTQ': {'name': 'MOVNTQ','url': 'http://www.felixcloutier.com/x86/MOVNTQ.html','description': 'Store of Quadword Using Non-Temporal Hint'},
'MOVQ': {'name': 'MOVQ','url': 'http://www.felixcloutier.com/x86/MOVQ.html','description': 'Move Quadword'},
'MOVQ2DQ': {'name': 'MOVQ2DQ','url': 'http://www.felixcloutier.com/x86/MOVQ2DQ.html','description': 'Move Quadword from MMX Technology to XMM Register'},
'MOVS': {'name': 'MOVS','url': 'http://www.felixcloutier.com/x86/MOVS:MOVSB:MOVSW:MOVSD:MOVSQ.html','description': 'Move Data from String to String'},
'MOVSB': {'name': 'MOVSB','url': 'http://www.felixcloutier.com/x86/MOVS:MOVSB:MOVSW:MOVSD:MOVSQ.html','description': 'Move Data from String to String'},
'MOVSW': {'name': 'MOVSW','url': 'http://www.felixcloutier.com/x86/MOVS:MOVSB:MOVSW:MOVSD:MOVSQ.html','description': 'Move Data from String to String'},
'MOVSD': {'name': 'MOVSD','url': 'http://www.felixcloutier.com/x86/MOVS:MOVSB:MOVSW:MOVSD:MOVSQ.html','description': 'Move Data from String to String'},
'MOVSQ': {'name': 'MOVSQ','url': 'http://www.felixcloutier.com/x86/MOVS:MOVSB:MOVSW:MOVSD:MOVSQ.html','description': 'Move Data from String to String'},
'MOVSD': {'name': 'MOVSD','url': 'http://www.felixcloutier.com/x86/MOVSD.html','description': 'Move Scalar Double-Precision Floating-Point Value'},
'MOVSHDUP': {'name': 'MOVSHDUP','url': 'http://www.felixcloutier.com/x86/MOVSHDUP.html','description': 'Move Packed Single-FP High and Duplicate'},
'MOVSLDUP': {'name': 'MOVSLDUP','url': 'http://www.felixcloutier.com/x86/MOVSLDUP.html','description': 'Move Packed Single-FP Low and Duplicate'},
'MOVSS': {'name': 'MOVSS','url': 'http://www.felixcloutier.com/x86/MOVSS.html','description': 'Move Scalar Single-Precision Floating-Point Values'},
'MOVSX': {'name': 'MOVSX','url': 'http://www.felixcloutier.com/x86/MOVSX:MOVSXD.html','description': 'Move with Sign-Extension'},
'MOVSXD': {'name': 'MOVSXD','url': 'http://www.felixcloutier.com/x86/MOVSX:MOVSXD.html','description': 'Move with Sign-Extension'},
'MOVUPD': {'name': 'MOVUPD','url': 'http://www.felixcloutier.com/x86/MOVUPD.html','description': 'Move Unaligned Packed Double-Precision Floating-Point Values'},
'MOVUPS': {'name': 'MOVUPS','url': 'http://www.felixcloutier.com/x86/MOVUPS.html','description': 'Move Unaligned Packed Single-Precision Floating-Point Values'},
'MOVZX': {'name': 'MOVZX','url': 'http://www.felixcloutier.com/x86/MOVZX.html','description': 'Move with Zero-Extend'},
'MPSADBW': {'name': 'MPSADBW','url': 'http://www.felixcloutier.com/x86/MPSADBW.html','description': 'Compute Multiple Packed Sums of Absolute Difference'},
'MUL': {'name': 'MUL','url': 'http://www.felixcloutier.com/x86/MUL.html','description': 'Unsigned Multiply'},
'MULPD': {'name': 'MULPD','url': 'http://www.felixcloutier.com/x86/MULPD.html','description': 'Multiply Packed Double-Precision Floating-Point Values'},
'MULPS': {'name': 'MULPS','url': 'http://www.felixcloutier.com/x86/MULPS.html','description': 'Multiply Packed Single-Precision Floating-Point Values'},
'MULSD': {'name': 'MULSD','url': 'http://www.felixcloutier.com/x86/MULSD.html','description': 'Multiply Scalar Double-Precision Floating-Point Values'},
'MULSS': {'name': 'MULSS','url': 'http://www.felixcloutier.com/x86/MULSS.html','description': 'Multiply Scalar Single-Precision Floating-Point Values'},
'MULX': {'name': 'MULX','url': 'http://www.felixcloutier.com/x86/MULX.html','description': 'Unsigned Multiply Without Affecting Flags'},
'MWAIT': {'name': 'MWAIT','url': 'http://www.felixcloutier.com/x86/MWAIT.html','description': 'Monitor Wait'},
'NEG': {'name': 'NEG','url': 'http://www.felixcloutier.com/x86/NEG.html','description': "Two's Complement Negation"},
'NOP': {'name': 'NOP','url': 'http://www.felixcloutier.com/x86/NOP.html','description': 'No Operation'},
'NOT': {'name': 'NOT','url': 'http://www.felixcloutier.com/x86/NOT.html','description': "One's Complement Negation"},
'OR': {'name': 'OR','url': 'http://www.felixcloutier.com/x86/OR.html','description': 'Logical Inclusive OR'},
'ORPD': {'name': 'ORPD','url': 'http://www.felixcloutier.com/x86/ORPD.html','description': 'Bitwise Logical OR of Double-Precision Floating-Point Values'},
'ORPS': {'name': 'ORPS','url': 'http://www.felixcloutier.com/x86/ORPS.html','description': 'Bitwise Logical OR of Single-Precision Floating-Point Values'},
'OUT': {'name': 'OUT','url': 'http://www.felixcloutier.com/x86/OUT.html','description': 'Output to Port'},
'OUTS': {'name': 'OUTS','url': 'http://www.felixcloutier.com/x86/OUTS:OUTSB:OUTSW:OUTSD.html','description': 'Output String to Port'},
'OUTSB': {'name': 'OUTSB','url': 'http://www.felixcloutier.com/x86/OUTS:OUTSB:OUTSW:OUTSD.html','description': 'Output String to Port'},
'OUTSW': {'name': 'OUTSW','url': 'http://www.felixcloutier.com/x86/OUTS:OUTSB:OUTSW:OUTSD.html','description': 'Output String to Port'},
'OUTSD': {'name': 'OUTSD','url': 'http://www.felixcloutier.com/x86/OUTS:OUTSB:OUTSW:OUTSD.html','description': 'Output String to Port'},
'PABSB': {'name': 'PABSB','url': 'http://www.felixcloutier.com/x86/PABSB:PABSW:PABSD.html','description': 'Packed Absolute Value'},
'PABSW': {'name': 'PABSW','url': 'http://www.felixcloutier.com/x86/PABSB:PABSW:PABSD.html','description': 'Packed Absolute Value'},
'PABSD': {'name': 'PABSD','url': 'http://www.felixcloutier.com/x86/PABSB:PABSW:PABSD.html','description': 'Packed Absolute Value'},
'PACKSSWB': {'name': 'PACKSSWB','url': 'http://www.felixcloutier.com/x86/PACKSSWB:PACKSSDW.html','description': 'Pack with Signed Saturation'},
'PACKSSDW': {'name': 'PACKSSDW','url': 'http://www.felixcloutier.com/x86/PACKSSWB:PACKSSDW.html','description': 'Pack with Signed Saturation'},
'PACKUSDW': {'name': 'PACKUSDW','url': 'http://www.felixcloutier.com/x86/PACKUSDW.html','description': 'Pack with Unsigned Saturation'},
'PACKUSWB': {'name': 'PACKUSWB','url': 'http://www.felixcloutier.com/x86/PACKUSWB.html','description': 'Pack with Unsigned Saturation'},
'PADDB': {'name': 'PADDB','url': 'http://www.felixcloutier.com/x86/PADDB:PADDW:PADDD.html','description': 'Add Packed Integers'},
'PADDW': {'name': 'PADDW','url': 'http://www.felixcloutier.com/x86/PADDB:PADDW:PADDD.html','description': 'Add Packed Integers'},
'PADDD': {'name': 'PADDD','url': 'http://www.felixcloutier.com/x86/PADDB:PADDW:PADDD.html','description': 'Add Packed Integers'},
'PADDQ': {'name': 'PADDQ','url': 'http://www.felixcloutier.com/x86/PADDQ.html','description': 'Add Packed Quadword Integers'},
'PADDSB': {'name': 'PADDSB','url': 'http://www.felixcloutier.com/x86/PADDSB:PADDSW.html','description': 'Add Packed Signed Integers with Signed Saturation'},
'PADDSW': {'name': 'PADDSW','url': 'http://www.felixcloutier.com/x86/PADDSB:PADDSW.html','description': 'Add Packed Signed Integers with Signed Saturation'},
'PADDUSB': {'name': 'PADDUSB','url': 'http://www.felixcloutier.com/x86/PADDUSB:PADDUSW.html','description': 'Add Packed Unsigned Integers with Unsigned Saturation'},
'PADDUSW': {'name': 'PADDUSW','url': 'http://www.felixcloutier.com/x86/PADDUSB:PADDUSW.html','description': 'Add Packed Unsigned Integers with Unsigned Saturation'},
'PALIGNR': {'name': 'PALIGNR','url': 'http://www.felixcloutier.com/x86/PALIGNR.html','description': 'Packed Align Right'},
'PAND': {'name': 'PAND','url': 'http://www.felixcloutier.com/x86/PAND.html','description': 'Logical AND'},
'PANDN': {'name': 'PANDN','url': 'http://www.felixcloutier.com/x86/PANDN.html','description': 'Logical AND NOT'},
'PAUSE': {'name': 'PAUSE','url': 'http://www.felixcloutier.com/x86/PAUSE.html','description': 'Spin Loop Hint'},
'PAVGB': {'name': 'PAVGB','url': 'http://www.felixcloutier.com/x86/PAVGB:PAVGW.html','description': 'Average Packed Integers'},
'PAVGW': {'name': 'PAVGW','url': 'http://www.felixcloutier.com/x86/PAVGB:PAVGW.html','description': 'Average Packed Integers'},
'PBLENDVB': {'name': 'PBLENDVB','url': 'http://www.felixcloutier.com/x86/PBLENDVB.html','description': 'Variable Blend Packed Bytes'},
'PBLENDW': {'name': 'PBLENDW','url': 'http://www.felixcloutier.com/x86/PBLENDW.html','description': 'Blend Packed Words'},
'PCLMULQDQ': {'name': 'PCLMULQDQ','url': 'http://www.felixcloutier.com/x86/PCLMULQDQ%20-%20Carry-Less%20Multiplication%20Quadword.html','description': 'Carry-Less Multiplication Quadword'},
'PCMPEQB': {'name': 'PCMPEQB','url': 'http://www.felixcloutier.com/x86/PCMPEQB:PCMPEQW:PCMPEQD.html','description': 'Compare Packed Data for Equal'},
'PCMPEQW': {'name': 'PCMPEQW','url': 'http://www.felixcloutier.com/x86/PCMPEQB:PCMPEQW:PCMPEQD.html','description': 'Compare Packed Data for Equal'},
'PCMPEQD': {'name': 'PCMPEQD','url': 'http://www.felixcloutier.com/x86/PCMPEQB:PCMPEQW:PCMPEQD.html','description': 'Compare Packed Data for Equal'},
'PCMPEQQ': {'name': 'PCMPEQQ','url': 'http://www.felixcloutier.com/x86/PCMPEQQ.html','description': 'Compare Packed Qword Data for Equal'},
'PCMPESTRI': {'name': 'PCMPESTRI','url': 'http://www.felixcloutier.com/x86/PCMPESTRI.html','description': 'Packed Compare Explicit Length Strings, Return Index'},
'PCMPESTRM': {'name': 'PCMPESTRM','url': 'http://www.felixcloutier.com/x86/PCMPESTRM.html','description': 'Packed Compare Explicit Length Strings, Return Mask'},
'PCMPGTB': {'name': 'PCMPGTB','url': 'http://www.felixcloutier.com/x86/PCMPGTB:PCMPGTW:PCMPGTD.html','description': 'Compare Packed Signed Integers for Greater Than'},
'PCMPGTW': {'name': 'PCMPGTW','url': 'http://www.felixcloutier.com/x86/PCMPGTB:PCMPGTW:PCMPGTD.html','description': 'Compare Packed Signed Integers for Greater Than'},
'PCMPGTD': {'name': 'PCMPGTD','url': 'http://www.felixcloutier.com/x86/PCMPGTB:PCMPGTW:PCMPGTD.html','description': 'Compare Packed Signed Integers for Greater Than'},
'PCMPGTQ': {'name': 'PCMPGTQ','url': 'http://www.felixcloutier.com/x86/PCMPGTQ.html','description': 'Compare Packed Data for Greater Than'},
'PCMPISTRI': {'name': 'PCMPISTRI','url': 'http://www.felixcloutier.com/x86/PCMPISTRI.html','description': 'Packed Compare Implicit Length Strings, Return Index'},
'PCMPISTRM': {'name': 'PCMPISTRM','url': 'http://www.felixcloutier.com/x86/PCMPISTRM.html','description': 'Packed Compare Implicit Length Strings, Return Mask'},
'PDEP': {'name': 'PDEP','url': 'http://www.felixcloutier.com/x86/PDEP.html','description': 'Parallel Bits Deposit'},
'PEXT': {'name': 'PEXT','url': 'http://www.felixcloutier.com/x86/PEXT.html','description': 'Parallel Bits Extract'},
'PEXTRB': {'name': 'PEXTRB','url': 'http://www.felixcloutier.com/x86/PEXTRB:PEXTRD:PEXTRQ.html','description': 'Extract Byte/Dword/Qword'},
'PEXTRD': {'name': 'PEXTRD','url': 'http://www.felixcloutier.com/x86/PEXTRB:PEXTRD:PEXTRQ.html','description': 'Extract Byte/Dword/Qword'},
'PEXTRQ': {'name': 'PEXTRQ','url': 'http://www.felixcloutier.com/x86/PEXTRB:PEXTRD:PEXTRQ.html','description': 'Extract Byte/Dword/Qword'},
'PEXTRW': {'name': 'PEXTRW','url': 'http://www.felixcloutier.com/x86/PEXTRW.html','description': 'Extract Word'},
'PHADDSW': {'name': 'PHADDSW','url': 'http://www.felixcloutier.com/x86/PHADDSW.html','description': 'Packed Horizontal Add and Saturate'},
'PHADDW': {'name': 'PHADDW','url': 'http://www.felixcloutier.com/x86/PHADDW:PHADDD.html','description': 'Packed Horizontal Add'},
'PHADDD': {'name': 'PHADDD','url': 'http://www.felixcloutier.com/x86/PHADDW:PHADDD.html','description': 'Packed Horizontal Add'},
'PHMINPOSUW': {'name': 'PHMINPOSUW','url': 'http://www.felixcloutier.com/x86/PHMINPOSUW.html','description': 'Packed Horizontal Word Minimum'},
'PHSUBSW': {'name': 'PHSUBSW','url': 'http://www.felixcloutier.com/x86/PHSUBSW.html','description': 'Packed Horizontal Subtract and Saturate'},
'PHSUBW': {'name': 'PHSUBW','url': 'http://www.felixcloutier.com/x86/PHSUBW:PHSUBD.html','description': 'Packed Horizontal Subtract'},
'PHSUBD': {'name': 'PHSUBD','url': 'http://www.felixcloutier.com/x86/PHSUBW:PHSUBD.html','description': 'Packed Horizontal Subtract'},
'PINSRB': {'name': 'PINSRB','url': 'http://www.felixcloutier.com/x86/PINSRB:PINSRD:PINSRQ.html','description': 'Insert Byte/Dword/Qword'},
'PINSRD': {'name': 'PINSRD','url': 'http://www.felixcloutier.com/x86/PINSRB:PINSRD:PINSRQ.html','description': 'Insert Byte/Dword/Qword'},
'PINSRQ': {'name': 'PINSRQ','url': 'http://www.felixcloutier.com/x86/PINSRB:PINSRD:PINSRQ.html','description': 'Insert Byte/Dword/Qword'},
'PINSRW': {'name': 'PINSRW','url': 'http://www.felixcloutier.com/x86/PINSRW.html','description': 'Insert Word'},
'PMADDUBSW': {'name': 'PMADDUBSW','url': 'http://www.felixcloutier.com/x86/PMADDUBSW.html','description': 'Multiply and Add Packed Signed and Unsigned Bytes'},
'PMADDWD': {'name': 'PMADDWD','url': 'http://www.felixcloutier.com/x86/PMADDWD.html','description': 'Multiply and Add Packed Integers'},
'PMAXSB': {'name': 'PMAXSB','url': 'http://www.felixcloutier.com/x86/PMAXSB.html','description': 'Maximum of Packed Signed Byte Integers'},
'PMAXSD': {'name': 'PMAXSD','url': 'http://www.felixcloutier.com/x86/PMAXSD.html','description': 'Maximum of Packed Signed Dword Integers'},
'PMAXSW': {'name': 'PMAXSW','url': 'http://www.felixcloutier.com/x86/PMAXSW.html','description': 'Maximum of Packed Signed Word Integers'},
'PMAXUB': {'name': 'PMAXUB','url': 'http://www.felixcloutier.com/x86/PMAXUB.html','description': 'Maximum of Packed Unsigned Byte Integers'},
'PMAXUD': {'name': 'PMAXUD','url': 'http://www.felixcloutier.com/x86/PMAXUD.html','description': 'Maximum of Packed Unsigned Dword Integers'},
'PMAXUW': {'name': 'PMAXUW','url': 'http://www.felixcloutier.com/x86/PMAXUW.html','description': 'Maximum of Packed Word Integers'},
'PMINSB': {'name': 'PMINSB','url': 'http://www.felixcloutier.com/x86/PMINSB.html','description': 'Minimum of Packed Signed Byte Integers'},
'PMINSD': {'name': 'PMINSD','url': 'http://www.felixcloutier.com/x86/PMINSD.html','description': 'Minimum of Packed Dword Integers'},
'PMINSW': {'name': 'PMINSW','url': 'http://www.felixcloutier.com/x86/PMINSW.html','description': 'Minimum of Packed Signed Word Integers'},
'PMINUB': {'name': 'PMINUB','url': 'http://www.felixcloutier.com/x86/PMINUB.html','description': 'Minimum of Packed Unsigned Byte Integers'},
'PMINUD': {'name': 'PMINUD','url': 'http://www.felixcloutier.com/x86/PMINUD.html','description': 'Minimum of Packed Dword Integers'},
'PMINUW': {'name': 'PMINUW','url': 'http://www.felixcloutier.com/x86/PMINUW.html','description': 'Minimum of Packed Word Integers'},
'PMOVMSKB': {'name': 'PMOVMSKB','url': 'http://www.felixcloutier.com/x86/PMOVMSKB.html','description': 'Move Byte Mask'},
'PMOVSX': {'name': 'PMOVSX','url': 'http://www.felixcloutier.com/x86/PMOVSX.html','description': 'Packed Move with Sign Extend'},
'PMOVZX': {'name': 'PMOVZX','url': 'http://www.felixcloutier.com/x86/PMOVZX.html','description': 'Packed Move with Zero Extend'},
'PMULDQ': {'name': 'PMULDQ','url': 'http://www.felixcloutier.com/x86/PMULDQ.html','description': 'Multiply Packed Signed Dword Integers'},
'PMULHRSW': {'name': 'PMULHRSW','url': 'http://www.felixcloutier.com/x86/PMULHRSW.html','description': 'Packed Multiply High with Round and Scale'},
'PMULHUW': {'name': 'PMULHUW','url': 'http://www.felixcloutier.com/x86/PMULHUW.html','description': 'Multiply Packed Unsigned Integers and Store High Result'},
'PMULHW': {'name': 'PMULHW','url': 'http://www.felixcloutier.com/x86/PMULHW.html','description': 'Multiply Packed Signed Integers and Store High Result'},
'PMULLD': {'name': 'PMULLD','url': 'http://www.felixcloutier.com/x86/PMULLD.html','description': 'Multiply Packed Signed Dword Integers and Store Low Result'},
'PMULLW': {'name': 'PMULLW','url': 'http://www.felixcloutier.com/x86/PMULLW.html','description': 'Multiply Packed Signed Integers and Store Low Result'},
'PMULUDQ': {'name': 'PMULUDQ','url': 'http://www.felixcloutier.com/x86/PMULUDQ.html','description': 'Multiply Packed Unsigned Doubleword Integers'},
'POP': {'name': 'POP','url': 'http://www.felixcloutier.com/x86/POP.html','description': 'Pop a Value from the Stack'},
'POPA': {'name': 'POPA','url': 'http://www.felixcloutier.com/x86/POPA:POPAD.html','description': 'Pop All General-Purpose Registers'},
'POPAD': {'name': 'POPAD','url': 'http://www.felixcloutier.com/x86/POPA:POPAD.html','description': 'Pop All General-Purpose Registers'},
'POPCNT': {'name': 'POPCNT','url': 'http://www.felixcloutier.com/x86/POPCNT.html','description': 'Return the Count of Number of Bits Set to 1'},
'POPF': {'name': 'POPF','url': 'http://www.felixcloutier.com/x86/POPF:POPFD:POPFQ.html','description': 'Pop Stack into EFLAGS Register'},
'POPFD': {'name': 'POPFD','url': 'http://www.felixcloutier.com/x86/POPF:POPFD:POPFQ.html','description': 'Pop Stack into EFLAGS Register'},
'POPFQ': {'name': 'POPFQ','url': 'http://www.felixcloutier.com/x86/POPF:POPFD:POPFQ.html','description': 'Pop Stack into EFLAGS Register'},
'POR': {'name': 'POR','url': 'http://www.felixcloutier.com/x86/POR.html','description': 'Bitwise Logical OR'},
'PREFETCHW': {'name': 'PREFETCHW','url': 'http://www.felixcloutier.com/x86/PREFETCHW.html','description': 'Prefetch Data into Caches in Anticipation of a Write'},
'PREFETCHh': {'name': 'PREFETCHh','url': 'http://www.felixcloutier.com/x86/PREFETCHh.html','description': 'Prefetch Data Into Caches'},
'PSADBW': {'name': 'PSADBW','url': 'http://www.felixcloutier.com/x86/PSADBW.html','description': 'Compute Sum of Absolute Differences'},
'PSHUFB': {'name': 'PSHUFB','url': 'http://www.felixcloutier.com/x86/PSHUFB.html','description': 'Packed Shuffle Bytes'},
'PSHUFD': {'name': 'PSHUFD','url': 'http://www.felixcloutier.com/x86/PSHUFD.html','description': 'Shuffle Packed Doublewords'},
'PSHUFHW': {'name': 'PSHUFHW','url': 'http://www.felixcloutier.com/x86/PSHUFHW.html','description': 'Shuffle Packed High Words'},
'PSHUFLW': {'name': 'PSHUFLW','url': 'http://www.felixcloutier.com/x86/PSHUFLW.html','description': 'Shuffle Packed Low Words'},
'PSHUFW': {'name': 'PSHUFW','url': 'http://www.felixcloutier.com/x86/PSHUFW.html','description': 'Shuffle Packed Words'},
'PSIGNB': {'name': 'PSIGNB','url': 'http://www.felixcloutier.com/x86/PSIGNB:PSIGNW:PSIGND.html','description': 'Packed SIGN'},
'PSIGNW': {'name': 'PSIGNW','url': 'http://www.felixcloutier.com/x86/PSIGNB:PSIGNW:PSIGND.html','description': 'Packed SIGN'},
'PSIGND': {'name': 'PSIGND','url': 'http://www.felixcloutier.com/x86/PSIGNB:PSIGNW:PSIGND.html','description': 'Packed SIGN'},
'PSLLDQ': {'name': 'PSLLDQ','url': 'http://www.felixcloutier.com/x86/PSLLDQ.html','description': 'Shift Double Quadword Left Logical'},
'PSLLW': {'name': 'PSLLW','url': 'http://www.felixcloutier.com/x86/PSLLW:PSLLD:PSLLQ.html','description': 'Shift Packed Data Left Logical'},
'PSLLD': {'name': 'PSLLD','url': 'http://www.felixcloutier.com/x86/PSLLW:PSLLD:PSLLQ.html','description': 'Shift Packed Data Left Logical'},
'PSLLQ': {'name': 'PSLLQ','url': 'http://www.felixcloutier.com/x86/PSLLW:PSLLD:PSLLQ.html','description': 'Shift Packed Data Left Logical'},
'PSRAW': {'name': 'PSRAW','url': 'http://www.felixcloutier.com/x86/PSRAW:PSRAD.html','description': 'Shift Packed Data Right Arithmetic'},
'PSRAD': {'name': 'PSRAD','url': 'http://www.felixcloutier.com/x86/PSRAW:PSRAD.html','description': 'Shift Packed Data Right Arithmetic'},
'PSRLDQ': {'name': 'PSRLDQ','url': 'http://www.felixcloutier.com/x86/PSRLDQ.html','description': 'Shift Double Quadword Right Logical'},
'PSRLW': {'name': 'PSRLW','url': 'http://www.felixcloutier.com/x86/PSRLW:PSRLD:PSRLQ.html','description': 'Shift Packed Data Right Logical'},
'PSRLD': {'name': 'PSRLD','url': 'http://www.felixcloutier.com/x86/PSRLW:PSRLD:PSRLQ.html','description': 'Shift Packed Data Right Logical'},
'PSRLQ': {'name': 'PSRLQ','url': 'http://www.felixcloutier.com/x86/PSRLW:PSRLD:PSRLQ.html','description': 'Shift Packed Data Right Logical'},
'PSUBB': {'name': 'PSUBB','url': 'http://www.felixcloutier.com/x86/PSUBB:PSUBW:PSUBD.html','description': 'Subtract Packed Integers'},
'PSUBW': {'name': 'PSUBW','url': 'http://www.felixcloutier.com/x86/PSUBB:PSUBW:PSUBD.html','description': 'Subtract Packed Integers'},
'PSUBD': {'name': 'PSUBD','url': 'http://www.felixcloutier.com/x86/PSUBB:PSUBW:PSUBD.html','description': 'Subtract Packed Integers'},
'PSUBQ': {'name': 'PSUBQ','url': 'http://www.felixcloutier.com/x86/PSUBQ.html','description': 'Subtract Packed Quadword Integers'},
'PSUBSB': {'name': 'PSUBSB','url': 'http://www.felixcloutier.com/x86/PSUBSB:PSUBSW.html','description': 'Subtract Packed Signed Integers with Signed Saturation'},
'PSUBSW': {'name': 'PSUBSW','url': 'http://www.felixcloutier.com/x86/PSUBSB:PSUBSW.html','description': 'Subtract Packed Signed Integers with Signed Saturation'},
'PSUBUSB': {'name': 'PSUBUSB','url': 'http://www.felixcloutier.com/x86/PSUBUSB:PSUBUSW.html','description': 'Subtract Packed Unsigned Integers with Unsigned Saturation'},
'PSUBUSW': {'name': 'PSUBUSW','url': 'http://www.felixcloutier.com/x86/PSUBUSB:PSUBUSW.html','description': 'Subtract Packed Unsigned Integers with Unsigned Saturation'},
'PTEST': {'name': 'PTEST','url': 'http://www.felixcloutier.com/x86/PTEST-%20Logical%20Compare.html','description': 'Logical Compare'},
'PUNPCKHBW': {'name': 'PUNPCKHBW','url': 'http://www.felixcloutier.com/x86/PUNPCKHBW:PUNPCKHWD:PUNPCKHDQ:PUNPCKHQDQ.html','description': 'Unpack High Data'},
'PUNPCKHWD': {'name': 'PUNPCKHWD','url': 'http://www.felixcloutier.com/x86/PUNPCKHBW:PUNPCKHWD:PUNPCKHDQ:PUNPCKHQDQ.html','description': 'Unpack High Data'},
'PUNPCKHDQ': {'name': 'PUNPCKHDQ','url': 'http://www.felixcloutier.com/x86/PUNPCKHBW:PUNPCKHWD:PUNPCKHDQ:PUNPCKHQDQ.html','description': 'Unpack High Data'},
'PUNPCKHQDQ': {'name': 'PUNPCKHQDQ','url': 'http://www.felixcloutier.com/x86/PUNPCKHBW:PUNPCKHWD:PUNPCKHDQ:PUNPCKHQDQ.html','description': 'Unpack High Data'},
'PUNPCKLBW': {'name': 'PUNPCKLBW','url': 'http://www.felixcloutier.com/x86/PUNPCKLBW:PUNPCKLWD:PUNPCKLDQ:PUNPCKLQDQ.html','description': 'Unpack Low Data'},
'PUNPCKLWD': {'name': 'PUNPCKLWD','url': 'http://www.felixcloutier.com/x86/PUNPCKLBW:PUNPCKLWD:PUNPCKLDQ:PUNPCKLQDQ.html','description': 'Unpack Low Data'},
'PUNPCKLDQ': {'name': 'PUNPCKLDQ','url': 'http://www.felixcloutier.com/x86/PUNPCKLBW:PUNPCKLWD:PUNPCKLDQ:PUNPCKLQDQ.html','description': 'Unpack Low Data'},
'PUNPCKLQDQ': {'name': 'PUNPCKLQDQ','url': 'http://www.felixcloutier.com/x86/PUNPCKLBW:PUNPCKLWD:PUNPCKLDQ:PUNPCKLQDQ.html','description': 'Unpack Low Data'},
'PUSH': {'name': 'PUSH','url': 'http://www.felixcloutier.com/x86/PUSH.html','description': 'Push Word, Doubleword or Quadword Onto the Stack'},
'PUSHA': {'name': 'PUSHA','url': 'http://www.felixcloutier.com/x86/PUSHA:PUSHAD.html','description': 'Push All General-Purpose Registers'},
'PUSHAD': {'name': 'PUSHAD','url': 'http://www.felixcloutier.com/x86/PUSHA:PUSHAD.html','description': 'Push All General-Purpose Registers'},
'PUSHF': {'name': 'PUSHF','url': 'http://www.felixcloutier.com/x86/PUSHF:PUSHFD.html','description': 'Push EFLAGS Register onto the Stack'},
'PUSHFD': {'name': 'PUSHFD','url': 'http://www.felixcloutier.com/x86/PUSHF:PUSHFD.html','description': 'Push EFLAGS Register onto the Stack'},
'PXOR': {'name': 'PXOR','url': 'http://www.felixcloutier.com/x86/PXOR.html','description': 'Logical Exclusive OR'},
'RCL': {'name': 'RCL','url': 'http://www.felixcloutier.com/x86/RCL:RCR:ROL:ROR-.html','description': 'Rotate'},
'RCR': {'name': 'RCR','url': 'http://www.felixcloutier.com/x86/RCL:RCR:ROL:ROR-.html','description': 'Rotate'},
'ROL': {'name': 'ROL','url': 'http://www.felixcloutier.com/x86/RCL:RCR:ROL:ROR-.html','description': 'Rotate'},
'ROR': {'name': 'ROR','url': 'http://www.felixcloutier.com/x86/RCL:RCR:ROL:ROR-.html','description': 'Rotate'},
'RCPPS': {'name': 'RCPPS','url': 'http://www.felixcloutier.com/x86/RCPPS.html','description': 'Compute Reciprocals of Packed Single-Precision Floating-Point Values'},
'RCPSS': {'name': 'RCPSS','url': 'http://www.felixcloutier.com/x86/RCPSS.html','description': 'Compute Reciprocal of Scalar Single-Precision Floating-Point Values'},
'RDFSBASE': {'name': 'RDFSBASE','url': 'http://www.felixcloutier.com/x86/RDFSBASE:RDGSBASE.html','description': 'Read FS/GS Segment Base'},
'RDGSBASE': {'name': 'RDGSBASE','url': 'http://www.felixcloutier.com/x86/RDFSBASE:RDGSBASE.html','description': 'Read FS/GS Segment Base'},
'RDMSR': {'name': 'RDMSR','url': 'http://www.felixcloutier.com/x86/RDMSR.html','description': 'Read from Model Specific Register'},
'RDPMC': {'name': 'RDPMC','url': 'http://www.felixcloutier.com/x86/RDPMC.html','description': 'Read Performance-Monitoring Counters'},
'RDRAND': {'name': 'RDRAND','url': 'http://www.felixcloutier.com/x86/RDRAND.html','description': 'Read Random Number'},
'RDTSC': {'name': 'RDTSC','url': 'http://www.felixcloutier.com/x86/RDTSC.html','description': 'Read Time-Stamp Counter'},
'RDTSCP': {'name': 'RDTSCP','url': 'http://www.felixcloutier.com/x86/RDTSCP.html','description': 'Read Time-Stamp Counter and Processor ID'},
'REP': {'name': 'REP','url': 'http://www.felixcloutier.com/x86/REP:REPE:REPZ:REPNE:REPNZ.html','description': 'Repeat String Operation Prefix'},
'REPE': {'name': 'REPE','url': 'http://www.felixcloutier.com/x86/REP:REPE:REPZ:REPNE:REPNZ.html','description': 'Repeat String Operation Prefix'},
'REPZ': {'name': 'REPZ','url': 'http://www.felixcloutier.com/x86/REP:REPE:REPZ:REPNE:REPNZ.html','description': 'Repeat String Operation Prefix'},
'REPNE': {'name': 'REPNE','url': 'http://www.felixcloutier.com/x86/REP:REPE:REPZ:REPNE:REPNZ.html','description': 'Repeat String Operation Prefix'},
'REPNZ': {'name': 'REPNZ','url': 'http://www.felixcloutier.com/x86/REP:REPE:REPZ:REPNE:REPNZ.html','description': 'Repeat String Operation Prefix'},
'RET': {'name': 'RET','url': 'http://www.felixcloutier.com/x86/RET.html','description': 'Return from Procedure'},
'RORX': {'name': 'RORX','url': 'http://www.felixcloutier.com/x86/RORX.html','description': 'Rotate Right Logical Without Affecting Flags'},
'ROUNDPD': {'name': 'ROUNDPD','url': 'http://www.felixcloutier.com/x86/ROUNDPD.html','description': 'Round Packed Double Precision Floating-Point Values'},
'ROUNDPS': {'name': 'ROUNDPS','url': 'http://www.felixcloutier.com/x86/ROUNDPS.html','description': 'Round Packed Single Precision Floating-Point Values'},
'ROUNDSD': {'name': 'ROUNDSD','url': 'http://www.felixcloutier.com/x86/ROUNDSD.html','description': 'Round Scalar Double Precision Floating-Point Values'},
'ROUNDSS': {'name': 'ROUNDSS','url': 'http://www.felixcloutier.com/x86/ROUNDSS.html','description': 'Round Scalar Single Precision Floating-Point Values'},
'RSM': {'name': 'RSM','url': 'http://www.felixcloutier.com/x86/RSM.html','description': 'Resume from System Management Mode'},
'RSQRTPS': {'name': 'RSQRTPS','url': 'http://www.felixcloutier.com/x86/RSQRTPS.html','description': 'Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values'},
'RSQRTSS': {'name': 'RSQRTSS','url': 'http://www.felixcloutier.com/x86/RSQRTSS.html','description': 'Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value'},
'SAHF': {'name': 'SAHF','url': 'http://www.felixcloutier.com/x86/SAHF.html','description': 'Store AH into Flags'},
'SAL': {'name': 'SAL','url': 'http://www.felixcloutier.com/x86/SAL:SAR:SHL:SHR.html','description': 'Shift'},
'SAR': {'name': 'SAR','url': 'http://www.felixcloutier.com/x86/SAL:SAR:SHL:SHR.html','description': 'Shift'},
'SHL': {'name': 'SHL','url': 'http://www.felixcloutier.com/x86/SAL:SAR:SHL:SHR.html','description': 'Shift'},
'SHR': {'name': 'SHR','url': 'http://www.felixcloutier.com/x86/SAL:SAR:SHL:SHR.html','description': 'Shift'},
'SARX': {'name': 'SARX','url': 'http://www.felixcloutier.com/x86/SARX:SHLX:SHRX.html','description': 'Shift Without Affecting Flags'},
'SHLX': {'name': 'SHLX','url': 'http://www.felixcloutier.com/x86/SARX:SHLX:SHRX.html','description': 'Shift Without Affecting Flags'},
'SHRX': {'name': 'SHRX','url': 'http://www.felixcloutier.com/x86/SARX:SHLX:SHRX.html','description': 'Shift Without Affecting Flags'},
'SBB': {'name': 'SBB','url': 'http://www.felixcloutier.com/x86/SBB.html','description': 'Integer Subtraction with Borrow'},
'SCAS': {'name': 'SCAS','url': 'http://www.felixcloutier.com/x86/SCAS:SCASB:SCASW:SCASD.html','description': 'Scan String'},
'SCASB': {'name': 'SCASB','url': 'http://www.felixcloutier.com/x86/SCAS:SCASB:SCASW:SCASD.html','description': 'Scan String'},
'SCASW': {'name': 'SCASW','url': 'http://www.felixcloutier.com/x86/SCAS:SCASB:SCASW:SCASD.html','description': 'Scan String'},
'SCASD': {'name': 'SCASD','url': 'http://www.felixcloutier.com/x86/SCAS:SCASB:SCASW:SCASD.html','description': 'Scan String'},
'SETcc': {'name': 'SETcc','url': 'http://www.felixcloutier.com/x86/SETcc.html','description': 'Set Byte on Condition'},
'SFENCE': {'name': 'SFENCE','url': 'http://www.felixcloutier.com/x86/SFENCE.html','description': 'Store Fence'},
'SGDT': {'name': 'SGDT','url': 'http://www.felixcloutier.com/x86/SGDT.html','description': 'Store Global Descriptor Table Register'},
'SHLD': {'name': 'SHLD','url': 'http://www.felixcloutier.com/x86/SHLD.html','description': 'Double Precision Shift Left'},
'SHRD': {'name': 'SHRD','url': 'http://www.felixcloutier.com/x86/SHRD.html','description': 'Double Precision Shift Right'},
'SHUFPD': {'name': 'SHUFPD','url': 'http://www.felixcloutier.com/x86/SHUFPD.html','description': 'Shuffle Packed Double-Precision Floating-Point Values'},
'SHUFPS': {'name': 'SHUFPS','url': 'http://www.felixcloutier.com/x86/SHUFPS.html','description': 'Shuffle Packed Single-Precision Floating-Point Values'},
'SIDT': {'name': 'SIDT','url': 'http://www.felixcloutier.com/x86/SIDT.html','description': 'Store Interrupt Descriptor Table Register'},
'SLDT': {'name': 'SLDT','url': 'http://www.felixcloutier.com/x86/SLDT.html','description': 'Store Local Descriptor Table Register'},
'SMSW': {'name': 'SMSW','url': 'http://www.felixcloutier.com/x86/SMSW.html','description': 'Store Machine Status Word'},
'SQRTPD': {'name': 'SQRTPD','url': 'http://www.felixcloutier.com/x86/SQRTPD.html','description': 'Compute Square Roots of Packed Double-Precision Floating-Point Values'},
'SQRTPS': {'name': 'SQRTPS','url': 'http://www.felixcloutier.com/x86/SQRTPS.html','description': 'Compute Square Roots of Packed Single-Precision Floating-Point Values'},
'SQRTSD': {'name': 'SQRTSD','url': 'http://www.felixcloutier.com/x86/SQRTSD.html','description': 'Compute Square Root of Scalar Double-Precision Floating-Point Value'},
'SQRTSS': {'name': 'SQRTSS','url': 'http://www.felixcloutier.com/x86/SQRTSS.html','description': 'Compute Square Root of Scalar Single-Precision Floating-Point Value'},
'STC': {'name': 'STC','url': 'http://www.felixcloutier.com/x86/STC.html','description': 'Set Carry Flag'},
'STD': {'name': 'STD','url': 'http://www.felixcloutier.com/x86/STD.html','description': 'Set Direction Flag'},
'STI': {'name': 'STI','url': 'http://www.felixcloutier.com/x86/STI.html','description': 'Set Interrupt Flag'},
'STMXCSR': {'name': 'STMXCSR','url': 'http://www.felixcloutier.com/x86/STMXCSR.html','description': 'Store MXCSR Register State'},
'STOS': {'name': 'STOS','url': 'http://www.felixcloutier.com/x86/STOS:STOSB:STOSW:STOSD:STOSQ.html','description': 'Store String'},
'STOSB': {'name': 'STOSB','url': 'http://www.felixcloutier.com/x86/STOS:STOSB:STOSW:STOSD:STOSQ.html','description': 'Store String'},
'STOSW': {'name': 'STOSW','url': 'http://www.felixcloutier.com/x86/STOS:STOSB:STOSW:STOSD:STOSQ.html','description': 'Store String'},
'STOSD': {'name': 'STOSD','url': 'http://www.felixcloutier.com/x86/STOS:STOSB:STOSW:STOSD:STOSQ.html','description': 'Store String'},
'STOSQ': {'name': 'STOSQ','url': 'http://www.felixcloutier.com/x86/STOS:STOSB:STOSW:STOSD:STOSQ.html','description': 'Store String'},
'STR': {'name': 'STR','url': 'http://www.felixcloutier.com/x86/STR.html','description': 'Store Task Register'},
'SUB': {'name': 'SUB','url': 'http://www.felixcloutier.com/x86/SUB.html','description': 'Subtract'},
'SUBPD': {'name': 'SUBPD','url': 'http://www.felixcloutier.com/x86/SUBPD.html','description': 'Subtract Packed Double-Precision Floating-Point Values'},
'SUBPS': {'name': 'SUBPS','url': 'http://www.felixcloutier.com/x86/SUBPS.html','description': 'Subtract Packed Single-Precision Floating-Point Values'},
'SUBSD': {'name': 'SUBSD','url': 'http://www.felixcloutier.com/x86/SUBSD.html','description': 'Subtract Scalar Double-Precision Floating-Point Values'},
'SUBSS': {'name': 'SUBSS','url': 'http://www.felixcloutier.com/x86/SUBSS.html','description': 'Subtract Scalar Single-Precision Floating-Point Values'},
'SWAPGS': {'name': 'SWAPGS','url': 'http://www.felixcloutier.com/x86/SWAPGS.html','description': 'Swap GS Base Register'},
'SYSCALL': {'name': 'SYSCALL','url': 'http://www.felixcloutier.com/x86/SYSCALL.html','description': 'Fast System Call'},
'SYSENTER': {'name': 'SYSENTER','url': 'http://www.felixcloutier.com/x86/SYSENTER.html','description': 'Fast System Call'},
'SYSEXIT': {'name': 'SYSEXIT','url': 'http://www.felixcloutier.com/x86/SYSEXIT.html','description': 'Fast Return from Fast System Call'},
'SYSRET': {'name': 'SYSRET','url': 'http://www.felixcloutier.com/x86/SYSRET.html','description': 'Return From Fast System Call'},
'TEST': {'name': 'TEST','url': 'http://www.felixcloutier.com/x86/TEST.html','description': 'Logical Compare'},
'TZCNT': {'name': 'TZCNT','url': 'http://www.felixcloutier.com/x86/TZCNT.html','description': 'Count the Number of Trailing Zero Bits'},
'UCOMISD': {'name': 'UCOMISD','url': 'http://www.felixcloutier.com/x86/UCOMISD.html','description': 'Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS'},
'UCOMISS': {'name': 'UCOMISS','url': 'http://www.felixcloutier.com/x86/UCOMISS.html','description': 'Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS'},
'UD2': {'name': 'UD2','url': 'http://www.felixcloutier.com/x86/UD2.html','description': 'Undefined Instruction'},
'UNPCKHPD': {'name': 'UNPCKHPD','url': 'http://www.felixcloutier.com/x86/UNPCKHPD.html','description': 'Unpack and Interleave High Packed Double-Precision Floating-Point Values'},
'UNPCKHPS': {'name': 'UNPCKHPS','url': 'http://www.felixcloutier.com/x86/UNPCKHPS.html','description': 'Unpack and Interleave High Packed Single-Precision Floating-Point Values'},
'UNPCKLPD': {'name': 'UNPCKLPD','url': 'http://www.felixcloutier.com/x86/UNPCKLPD.html','description': 'Unpack and Interleave Low Packed Double-Precision Floating-Point Values'},
'UNPCKLPS': {'name': 'UNPCKLPS','url': 'http://www.felixcloutier.com/x86/UNPCKLPS.html','description': 'Unpack and Interleave Low Packed Single-Precision Floating-Point Values'},
'VBROADCAST': {'name': 'VBROADCAST','url': 'http://www.felixcloutier.com/x86/VBROADCAST.html','description': 'Broadcast Floating-Point Data'},
'VCVTPH2PS': {'name': 'VCVTPH2PS','url': 'http://www.felixcloutier.com/x86/VCVTPH2PS.html','description': 'Convert 16-bit FP Values to Single-Precision FP Values'},
'VCVTPS2PH': {'name': 'VCVTPS2PH','url': 'http://www.felixcloutier.com/x86/VCVTPS2PH.html','description': 'Convert Single-Precision FP value to 16-bit FP value'},
'VERR': {'name': 'VERR','url': 'http://www.felixcloutier.com/x86/VERR:VERW.html','description': 'Verify a Segment for Reading or Writing'},
'VERW': {'name': 'VERW','url': 'http://www.felixcloutier.com/x86/VERR:VERW.html','description': 'Verify a Segment for Reading or Writing'},
'VEXTRACTF128': {'name': 'VEXTRACTF128','url': 'http://www.felixcloutier.com/x86/VEXTRACTF128.html','description': 'Extract Packed Floating-Point Values'},
'VEXTRACTI128': {'name': 'VEXTRACTI128','url': 'http://www.felixcloutier.com/x86/VEXTRACTI128.html','description': 'Extract packed Integer Values'},
'VFMADD132PD': {'name': 'VFMADD132PD','url': 'http://www.felixcloutier.com/x86/VFMADD132PD:VFMADD213PD:VFMADD231PD.html','description': 'Fused Multiply-Add of Packed DoublePrecision Floating-Point Values'},
'VFMADD213PD': {'name': 'VFMADD213PD','url': 'http://www.felixcloutier.com/x86/VFMADD132PD:VFMADD213PD:VFMADD231PD.html','description': 'Fused Multiply-Add of Packed DoublePrecision Floating-Point Values'},
'VFMADD231PD': {'name': 'VFMADD231PD','url': 'http://www.felixcloutier.com/x86/VFMADD132PD:VFMADD213PD:VFMADD231PD.html','description': 'Fused Multiply-Add of Packed DoublePrecision Floating-Point Values'},
'VFMADD132PS': {'name': 'VFMADD132PS','url': 'http://www.felixcloutier.com/x86/VFMADD132PS:VFMADD213PS:VFMADD231PS.html','description': 'Fused Multiply-Add of Packed SinglePrecision Floating-Point Values'},
'VFMADD213PS': {'name': 'VFMADD213PS','url': 'http://www.felixcloutier.com/x86/VFMADD132PS:VFMADD213PS:VFMADD231PS.html','description': 'Fused Multiply-Add of Packed SinglePrecision Floating-Point Values'},
'VFMADD231PS': {'name': 'VFMADD231PS','url': 'http://www.felixcloutier.com/x86/VFMADD132PS:VFMADD213PS:VFMADD231PS.html','description': 'Fused Multiply-Add of Packed SinglePrecision Floating-Point Values'},
'VFMADD132SD': {'name': 'VFMADD132SD','url': 'http://www.felixcloutier.com/x86/VFMADD132SD:VFMADD213SD:VFMADD231SD.html','description': 'Fused Multiply-Add of Scalar DoublePrecision Floating-Point Values'},
'VFMADD213SD': {'name': 'VFMADD213SD','url': 'http://www.felixcloutier.com/x86/VFMADD132SD:VFMADD213SD:VFMADD231SD.html','description': 'Fused Multiply-Add of Scalar DoublePrecision Floating-Point Values'},
'VFMADD231SD': {'name': 'VFMADD231SD','url': 'http://www.felixcloutier.com/x86/VFMADD132SD:VFMADD213SD:VFMADD231SD.html','description': 'Fused Multiply-Add of Scalar DoublePrecision Floating-Point Values'},
'VFMADD132SS': {'name': 'VFMADD132SS','url': 'http://www.felixcloutier.com/x86/VFMADD132SS:VFMADD213SS:VFMADD231SS.html','description': 'Fused Multiply-Add of Scalar Single-Precision Floating-Point Values'},
'VFMADD213SS': {'name': 'VFMADD213SS','url': 'http://www.felixcloutier.com/x86/VFMADD132SS:VFMADD213SS:VFMADD231SS.html','description': 'Fused Multiply-Add of Scalar Single-Precision Floating-Point Values'},
'VFMADD231SS': {'name': 'VFMADD231SS','url': 'http://www.felixcloutier.com/x86/VFMADD132SS:VFMADD213SS:VFMADD231SS.html','description': 'Fused Multiply-Add of Scalar Single-Precision Floating-Point Values'},
'VFMADDSUB132PD': {'name': 'VFMADDSUB132PD','url': 'http://www.felixcloutier.com/x86/VFMADDSUB132PD:VFMADDSUB213PD:VFMADDSUB231PD.html','description': 'Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values'},
'VFMADDSUB213PD': {'name': 'VFMADDSUB213PD','url': 'http://www.felixcloutier.com/x86/VFMADDSUB132PD:VFMADDSUB213PD:VFMADDSUB231PD.html','description': 'Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values'},
'VFMADDSUB231PD': {'name': 'VFMADDSUB231PD','url': 'http://www.felixcloutier.com/x86/VFMADDSUB132PD:VFMADDSUB213PD:VFMADDSUB231PD.html','description': 'Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values'},
'VFMADDSUB132PS': {'name': 'VFMADDSUB132PS','url': 'http://www.felixcloutier.com/x86/VFMADDSUB132PS:VFMADDSUB213PS:VFMADDSUB231PS.html','description': 'Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values'},
'VFMADDSUB213PS': {'name': 'VFMADDSUB213PS','url': 'http://www.felixcloutier.com/x86/VFMADDSUB132PS:VFMADDSUB213PS:VFMADDSUB231PS.html','description': 'Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values'},
'VFMADDSUB231PS': {'name': 'VFMADDSUB231PS','url': 'http://www.felixcloutier.com/x86/VFMADDSUB132PS:VFMADDSUB213PS:VFMADDSUB231PS.html','description': 'Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values'},
'VFMSUB132PD': {'name': 'VFMSUB132PD','url': 'http://www.felixcloutier.com/x86/VFMSUB132PD:VFMSUB213PD:VFMSUB231PD.html','description': 'Fused Multiply-Subtract of Packed DoublePrecision Floating-Point Values'},
'VFMSUB213PD': {'name': 'VFMSUB213PD','url': 'http://www.felixcloutier.com/x86/VFMSUB132PD:VFMSUB213PD:VFMSUB231PD.html','description': 'Fused Multiply-Subtract of Packed DoublePrecision Floating-Point Values'},
'VFMSUB231PD': {'name': 'VFMSUB231PD','url': 'http://www.felixcloutier.com/x86/VFMSUB132PD:VFMSUB213PD:VFMSUB231PD.html','description': 'Fused Multiply-Subtract of Packed DoublePrecision Floating-Point Values'},
'VFMSUB132PS': {'name': 'VFMSUB132PS','url': 'http://www.felixcloutier.com/x86/VFMSUB132PS:VFMSUB213PS:VFMSUB231PS.html','description': 'Fused Multiply-Subtract of Packed SinglePrecision Floating-Point Values'},
'VFMSUB213PS': {'name': 'VFMSUB213PS','url': 'http://www.felixcloutier.com/x86/VFMSUB132PS:VFMSUB213PS:VFMSUB231PS.html','description': 'Fused Multiply-Subtract of Packed SinglePrecision Floating-Point Values'},
'VFMSUB231PS': {'name': 'VFMSUB231PS','url': 'http://www.felixcloutier.com/x86/VFMSUB132PS:VFMSUB213PS:VFMSUB231PS.html','description': 'Fused Multiply-Subtract of Packed SinglePrecision Floating-Point Values'},
'VFMSUB132SD': {'name': 'VFMSUB132SD','url': 'http://www.felixcloutier.com/x86/VFMSUB132SD:VFMSUB213SD:VFMSUB231SD.html','description': 'Fused Multiply-Subtract of Scalar DoublePrecision Floating-Point Values'},
'VFMSUB213SD': {'name': 'VFMSUB213SD','url': 'http://www.felixcloutier.com/x86/VFMSUB132SD:VFMSUB213SD:VFMSUB231SD.html','description': 'Fused Multiply-Subtract of Scalar DoublePrecision Floating-Point Values'},
'VFMSUB231SD': {'name': 'VFMSUB231SD','url': 'http://www.felixcloutier.com/x86/VFMSUB132SD:VFMSUB213SD:VFMSUB231SD.html','description': 'Fused Multiply-Subtract of Scalar DoublePrecision Floating-Point Values'},
'VFMSUB132SS': {'name': 'VFMSUB132SS','url': 'http://www.felixcloutier.com/x86/VFMSUB132SS:VFMSUB213SS:VFMSUB231SS.html','description': 'Fused Multiply-Subtract of Scalar SinglePrecision Floating-Point Values'},
'VFMSUB213SS': {'name': 'VFMSUB213SS','url': 'http://www.felixcloutier.com/x86/VFMSUB132SS:VFMSUB213SS:VFMSUB231SS.html','description': 'Fused Multiply-Subtract of Scalar SinglePrecision Floating-Point Values'},
'VFMSUB231SS': {'name': 'VFMSUB231SS','url': 'http://www.felixcloutier.com/x86/VFMSUB132SS:VFMSUB213SS:VFMSUB231SS.html','description': 'Fused Multiply-Subtract of Scalar SinglePrecision Floating-Point Values'},
'VFMSUBADD132PD': {'name': 'VFMSUBADD132PD','url': 'http://www.felixcloutier.com/x86/VFMSUBADD132PD:VFMSUBADD213PD:VFMSUBADD231PD.html','description': 'Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values'},
'VFMSUBADD213PD': {'name': 'VFMSUBADD213PD','url': 'http://www.felixcloutier.com/x86/VFMSUBADD132PD:VFMSUBADD213PD:VFMSUBADD231PD.html','description': 'Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values'},
'VFMSUBADD231PD': {'name': 'VFMSUBADD231PD','url': 'http://www.felixcloutier.com/x86/VFMSUBADD132PD:VFMSUBADD213PD:VFMSUBADD231PD.html','description': 'Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values'},
'VFMSUBADD132PS': {'name': 'VFMSUBADD132PS','url': 'http://www.felixcloutier.com/x86/VFMSUBADD132PS:VFMSUBADD213PS:VFMSUBADD231PS.html','description': 'Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values'},
'VFMSUBADD213PS': {'name': 'VFMSUBADD213PS','url': 'http://www.felixcloutier.com/x86/VFMSUBADD132PS:VFMSUBADD213PS:VFMSUBADD231PS.html','description': 'Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values'},
'VFMSUBADD231PS': {'name': 'VFMSUBADD231PS','url': 'http://www.felixcloutier.com/x86/VFMSUBADD132PS:VFMSUBADD213PS:VFMSUBADD231PS.html','description': 'Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values'},
'VFNMADD132PD': {'name': 'VFNMADD132PD','url': 'http://www.felixcloutier.com/x86/VFNMADD132PD:VFNMADD213PD:VFNMADD231PD.html','description': 'Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values'},
'VFNMADD213PD': {'name': 'VFNMADD213PD','url': 'http://www.felixcloutier.com/x86/VFNMADD132PD:VFNMADD213PD:VFNMADD231PD.html','description': 'Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values'},
'VFNMADD231PD': {'name': 'VFNMADD231PD','url': 'http://www.felixcloutier.com/x86/VFNMADD132PD:VFNMADD213PD:VFNMADD231PD.html','description': 'Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values'},
'VFNMADD132PS': {'name': 'VFNMADD132PS','url': 'http://www.felixcloutier.com/x86/VFNMADD132PS:VFNMADD213PS:VFNMADD231PS.html','description': 'Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values'},
'VFNMADD213PS': {'name': 'VFNMADD213PS','url': 'http://www.felixcloutier.com/x86/VFNMADD132PS:VFNMADD213PS:VFNMADD231PS.html','description': 'Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values'},
'VFNMADD231PS': {'name': 'VFNMADD231PS','url': 'http://www.felixcloutier.com/x86/VFNMADD132PS:VFNMADD213PS:VFNMADD231PS.html','description': 'Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values'},
'VFNMADD132SD': {'name': 'VFNMADD132SD','url': 'http://www.felixcloutier.com/x86/VFNMADD132SD:VFNMADD213SD:VFNMADD231SD.html','description': 'Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values'},
'VFNMADD213SD': {'name': 'VFNMADD213SD','url': 'http://www.felixcloutier.com/x86/VFNMADD132SD:VFNMADD213SD:VFNMADD231SD.html','description': 'Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values'},
'VFNMADD231SD': {'name': 'VFNMADD231SD','url': 'http://www.felixcloutier.com/x86/VFNMADD132SD:VFNMADD213SD:VFNMADD231SD.html','description': 'Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values'},
'VFNMADD132SS': {'name': 'VFNMADD132SS','url': 'http://www.felixcloutier.com/x86/VFNMADD132SS:VFNMADD213SS:VFNMADD231SS.html','description': 'Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values'},
'VFNMADD213SS': {'name': 'VFNMADD213SS','url': 'http://www.felixcloutier.com/x86/VFNMADD132SS:VFNMADD213SS:VFNMADD231SS.html','description': 'Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values'},
'VFNMADD231SS': {'name': 'VFNMADD231SS','url': 'http://www.felixcloutier.com/x86/VFNMADD132SS:VFNMADD213SS:VFNMADD231SS.html','description': 'Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values'},
'VFNMSUB132PD': {'name': 'VFNMSUB132PD','url': 'http://www.felixcloutier.com/x86/VFNMSUB132PD:VFNMSUB213PD:VFNMSUB231PD.html','description': 'Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values'},
'VFNMSUB213PD': {'name': 'VFNMSUB213PD','url': 'http://www.felixcloutier.com/x86/VFNMSUB132PD:VFNMSUB213PD:VFNMSUB231PD.html','description': 'Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values'},
'VFNMSUB231PD': {'name': 'VFNMSUB231PD','url': 'http://www.felixcloutier.com/x86/VFNMSUB132PD:VFNMSUB213PD:VFNMSUB231PD.html','description': 'Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values'},
'VFNMSUB132PS': {'name': 'VFNMSUB132PS','url': 'http://www.felixcloutier.com/x86/VFNMSUB132PS:VFNMSUB213PS:VFNMSUB231PS.html','description': 'Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values'},
'VFNMSUB213PS': {'name': 'VFNMSUB213PS','url': 'http://www.felixcloutier.com/x86/VFNMSUB132PS:VFNMSUB213PS:VFNMSUB231PS.html','description': 'Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values'},
'VFNMSUB231PS': {'name': 'VFNMSUB231PS','url': 'http://www.felixcloutier.com/x86/VFNMSUB132PS:VFNMSUB213PS:VFNMSUB231PS.html','description': 'Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values'},
'VFNMSUB132SD': {'name': 'VFNMSUB132SD','url': 'http://www.felixcloutier.com/x86/VFNMSUB132SD:VFNMSUB213SD:VFNMSUB231SD.html','description': 'Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values'},
'VFNMSUB213SD': {'name': 'VFNMSUB213SD','url': 'http://www.felixcloutier.com/x86/VFNMSUB132SD:VFNMSUB213SD:VFNMSUB231SD.html','description': 'Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values'},
'VFNMSUB231SD': {'name': 'VFNMSUB231SD','url': 'http://www.felixcloutier.com/x86/VFNMSUB132SD:VFNMSUB213SD:VFNMSUB231SD.html','description': 'Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values'},
'VFNMSUB132SS': {'name': 'VFNMSUB132SS','url': 'http://www.felixcloutier.com/x86/VFNMSUB132SS:VFNMSUB213SS:VFNMSUB231SS.html','description': 'Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values'},
'VFNMSUB213SS': {'name': 'VFNMSUB213SS','url': 'http://www.felixcloutier.com/x86/VFNMSUB132SS:VFNMSUB213SS:VFNMSUB231SS.html','description': 'Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values'},
'VFNMSUB231SS': {'name': 'VFNMSUB231SS','url': 'http://www.felixcloutier.com/x86/VFNMSUB132SS:VFNMSUB213SS:VFNMSUB231SS.html','description': 'Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values'},
'VGATHERDPD': {'name': 'VGATHERDPD','url': 'http://www.felixcloutier.com/x86/VGATHERDPD:VGATHERQPD.html','description': 'Gather Packed DP FP Values Using Signed Dword/Qword Indices'},
'VGATHERQPD': {'name': 'VGATHERQPD','url': 'http://www.felixcloutier.com/x86/VGATHERDPD:VGATHERQPD.html','description': 'Gather Packed DP FP Values Using Signed Dword/Qword Indices'},
'VGATHERDPS': {'name': 'VGATHERDPS','url': 'http://www.felixcloutier.com/x86/VGATHERDPS:VGATHERQPS.html','description': 'Gather Packed SP FP values Using Signed Dword/Qword Indices'},
'VGATHERQPS': {'name': 'VGATHERQPS','url': 'http://www.felixcloutier.com/x86/VGATHERDPS:VGATHERQPS.html','description': 'Gather Packed SP FP values Using Signed Dword/Qword Indices'},
'VINSERTF128': {'name': 'VINSERTF128','url': 'http://www.felixcloutier.com/x86/VINSERTF128.html','description': 'Insert Packed Floating-Point Values'},
'VINSERTI128': {'name': 'VINSERTI128','url': 'http://www.felixcloutier.com/x86/VINSERTI128.html','description': 'Insert Packed Integer Values'},
'VMASKMOV': {'name': 'VMASKMOV','url': 'http://www.felixcloutier.com/x86/VMASKMOV.html','description': 'Conditional SIMD Packed Loads and Stores'},
'VPBLENDD': {'name': 'VPBLENDD','url': 'http://www.felixcloutier.com/x86/VPBLENDD.html','description': 'Blend Packed Dwords'},
'VPBROADCAST': {'name': 'VPBROADCAST','url': 'http://www.felixcloutier.com/x86/VPBROADCAST.html','description': 'Broadcast Integer Data'},
'VPERM2F128': {'name': 'VPERM2F128','url': 'http://www.felixcloutier.com/x86/VPERM2F128.html','description': 'Permute Floating-Point Values'},
'VPERM2I128': {'name': 'VPERM2I128','url': 'http://www.felixcloutier.com/x86/VPERM2I128.html','description': 'Permute Integer Values'},
'VPERMD': {'name': 'VPERMD','url': 'http://www.felixcloutier.com/x86/VPERMD.html','description': 'Full Doublewords Element Permutation'},
'VPERMILPD': {'name': 'VPERMILPD','url': 'http://www.felixcloutier.com/x86/VPERMILPD.html','description': 'Permute Double-Precision Floating-Point Values'},
'VPERMILPS': {'name': 'VPERMILPS','url': 'http://www.felixcloutier.com/x86/VPERMILPS.html','description': 'Permute Single-Precision Floating-Point Values'},
'VPERMPD': {'name': 'VPERMPD','url': 'http://www.felixcloutier.com/x86/VPERMPD.html','description': 'Permute Double-Precision Floating-Point Elements'},
'VPERMPS': {'name': 'VPERMPS','url': 'http://www.felixcloutier.com/x86/VPERMPS.html','description': 'Permute Single-Precision Floating-Point Elements'},
'VPERMQ': {'name': 'VPERMQ','url': 'http://www.felixcloutier.com/x86/VPERMQ.html','description': 'Qwords Element Permutation'},
'VPGATHERDD': {'name': 'VPGATHERDD','url': 'http://www.felixcloutier.com/x86/VPGATHERDD:VPGATHERQD.html','description': 'Gather Packed Dword Values Using Signed Dword/Qword Indices'},
'VPGATHERQD': {'name': 'VPGATHERQD','url': 'http://www.felixcloutier.com/x86/VPGATHERDD:VPGATHERQD.html','description': 'Gather Packed Dword Values Using Signed Dword/Qword Indices'},
'VPGATHERDQ': {'name': 'VPGATHERDQ','url': 'http://www.felixcloutier.com/x86/VPGATHERDQ:VPGATHERQQ.html','description': 'Gather Packed Qword Values Using Signed Dword/Qword Indices'},
'VPGATHERQQ': {'name': 'VPGATHERQQ','url': 'http://www.felixcloutier.com/x86/VPGATHERDQ:VPGATHERQQ.html','description': 'Gather Packed Qword Values Using Signed Dword/Qword Indices'},
'VPMASKMOV': {'name': 'VPMASKMOV','url': 'http://www.felixcloutier.com/x86/VPMASKMOV.html','description': 'Conditional SIMD Integer Packed Loads and Stores'},
'VPSLLVD': {'name': 'VPSLLVD','url': 'http://www.felixcloutier.com/x86/VPSLLVD:VPSLLVQ.html','description': 'Variable Bit Shift Left Logical'},
'VPSLLVQ': {'name': 'VPSLLVQ','url': 'http://www.felixcloutier.com/x86/VPSLLVD:VPSLLVQ.html','description': 'Variable Bit Shift Left Logical'},
'VPSRAVD': {'name': 'VPSRAVD','url': 'http://www.felixcloutier.com/x86/VPSRAVD.html','description': 'Variable Bit Shift Right Arithmetic'},
'VPSRLVD': {'name': 'VPSRLVD','url': 'http://www.felixcloutier.com/x86/VPSRLVD:VPSRLVQ.html','description': 'Variable Bit Shift Right Logical'},
'VPSRLVQ': {'name': 'VPSRLVQ','url': 'http://www.felixcloutier.com/x86/VPSRLVD:VPSRLVQ.html','description': 'Variable Bit Shift Right Logical'},
'VTESTPD': {'name': 'VTESTPD','url': 'http://www.felixcloutier.com/x86/VTESTPD:VTESTPS.html','description': 'Packed Bit Test'},
'VTESTPS': {'name': 'VTESTPS','url': 'http://www.felixcloutier.com/x86/VTESTPD:VTESTPS.html','description': 'Packed Bit Test'},
'VZEROALL': {'name': 'VZEROALL','url': 'http://www.felixcloutier.com/x86/VZEROALL.html','description': 'Zero All YMM Registers'},
'VZEROUPPER': {'name': 'VZEROUPPER','url': 'http://www.felixcloutier.com/x86/VZEROUPPER.html','description': 'Zero Upper Bits of YMM Registers'},
'WAIT': {'name': 'WAIT','url': 'http://www.felixcloutier.com/x86/WAIT:FWAIT.html','description': 'Wait'},
'FWAIT': {'name': 'FWAIT','url': 'http://www.felixcloutier.com/x86/WAIT:FWAIT.html','description': 'Wait'},
'WBINVD': {'name': 'WBINVD','url': 'http://www.felixcloutier.com/x86/WBINVD.html','description': 'Write Back and Invalidate Cache'},
'WRFSBASE': {'name': 'WRFSBASE','url': 'http://www.felixcloutier.com/x86/WRFSBASE:WRGSBASE.html','description': 'Write FS/GS Segment Base'},
'WRGSBASE': {'name': 'WRGSBASE','url': 'http://www.felixcloutier.com/x86/WRFSBASE:WRGSBASE.html','description': 'Write FS/GS Segment Base'},
'WRMSR': {'name': 'WRMSR','url': 'http://www.felixcloutier.com/x86/WRMSR.html','description': 'Write to Model Specific Register'},
'XABORT': {'name': 'XABORT','url': 'http://www.felixcloutier.com/x86/XABORT.html','description': 'Transactional Abort'},
'XACQUIRE': {'name': 'XACQUIRE','url': 'http://www.felixcloutier.com/x86/XACQUIRE:XRELEASE.html','description': 'Hardware Lock Elision Prefix Hints'},
'XRELEASE': {'name': 'XRELEASE','url': 'http://www.felixcloutier.com/x86/XACQUIRE:XRELEASE.html','description': 'Hardware Lock Elision Prefix Hints'},
'XADD': {'name': 'XADD','url': 'http://www.felixcloutier.com/x86/XADD.html','description': 'Exchange and Add'},
'XBEGIN': {'name': 'XBEGIN','url': 'http://www.felixcloutier.com/x86/XBEGIN.html','description': 'Transactional Begin'},
'XCHG': {'name': 'XCHG','url': 'http://www.felixcloutier.com/x86/XCHG.html','description': 'Exchange Register/Memory with Register'},
'XEND': {'name': 'XEND','url': 'http://www.felixcloutier.com/x86/XEND.html','description': 'Transactional End'},
'XGETBV': {'name': 'XGETBV','url': 'http://www.felixcloutier.com/x86/XGETBV.html','description': 'Get Value of Extended Control Register'},
'XLAT': {'name': 'XLAT','url': 'http://www.felixcloutier.com/x86/XLAT:XLATB.html','description': 'Table Look-up Translation'},
'XLATB': {'name': 'XLATB','url': 'http://www.felixcloutier.com/x86/XLAT:XLATB.html','description': 'Table Look-up Translation'},
'XOR': {'name': 'XOR','url': 'http://www.felixcloutier.com/x86/XOR.html','description': 'Logical Exclusive OR'},
'XORPD': {'name': 'XORPD','url': 'http://www.felixcloutier.com/x86/XORPD.html','description': 'Bitwise Logical XOR for Double-Precision Floating-Point Values'},
'XORPS': {'name': 'XORPS','url': 'http://www.felixcloutier.com/x86/XORPS.html','description': 'Bitwise Logical XOR for Single-Precision Floating-Point Values'},
'XRSTOR': {'name': 'XRSTOR','url': 'http://www.felixcloutier.com/x86/XRSTOR.html','description': 'Restore Processor Extended States'},
'XRSTORS': {'name': 'XRSTORS','url': 'http://www.felixcloutier.com/x86/XRSTORS.html','description': 'Restore Processor Extended States Supervisor'},
'XSAVE': {'name': 'XSAVE','url': 'http://www.felixcloutier.com/x86/XSAVE.html','description': 'Save Processor Extended States'},
'XSAVEC': {'name': 'XSAVEC','url': 'http://www.felixcloutier.com/x86/XSAVEC.html','description': 'Save Processor Extended States with Compaction'},
'XSAVEOPT': {'name': 'XSAVEOPT','url': 'http://www.felixcloutier.com/x86/XSAVEOPT.html','description': 'Save Processor Extended States Optimized'},
'XSAVES': {'name': 'XSAVES','url': 'http://www.felixcloutier.com/x86/XSAVES.html','description': 'Save Processor Extended States Supervisor'},
'XSETBV': {'name': 'XSETBV','url': 'http://www.felixcloutier.com/x86/XSETBV.html','description': 'Set Extended Control Register'},
'XTEST': {'name': 'XTEST','url': 'http://www.felixcloutier.com/x86/XTEST.html','description': 'Test If In Transactional Execution'}
}
import sys
import socket
import string
import ast
import operator as op
# supported operators
operators = {
ast.Add: op.add,
ast.Sub: op.sub,
ast.Mult: op.mul,
ast.Div: op.truediv,
ast.Pow: op.pow,
ast.Mod: op.mod,
ast.BitXor: op.xor,
ast.BitAnd: op.and_,
ast.BitOr: op.or_,
ast.RShift: op.rshift,
ast.LShift: op.lshift,
ast.Invert: op.inv,
ast.USub: op.neg
}
def eval_expr(expr):
return eval_(ast.parse(expr, mode='eval').body)
def eval_(node):
if isinstance(node, ast.Num): # <number>
return node.n
elif isinstance(node, ast.BinOp): # <left> <operator> <right>
return operators[type(node.op)](eval_(node.left), eval_(node.right))
elif isinstance(node, ast.UnaryOp): # <operator> <operand> e.g., -1
return operators[type(node.op)](eval_(node.operand))
else:
raise TypeError(node)
from functools import wraps
import errno
import os
import signal
class TimeoutError(Exception):
pass
def timeout(seconds=10, error_message=os.strerror(errno.ETIME)):
def decorator(func):
def _handle_timeout(signum, frame):
raise TimeoutError(error_message)
def wrapper(*args, **kwargs):
signal.signal(signal.SIGALRM, _handle_timeout)
signal.alarm(seconds)
try:
result = func(*args, **kwargs)
finally:
signal.alarm(0)
return result
return wraps(func)(wrapper)
return decorator
HOST = "irc.freenode.org"
PORT = 6667
NICK = "furfi"
IDENT = "furfi2"
REALNAME = "Furfi the Second"
MASTER = "godel"
CHANNEL = "#Orga2"
readbuffer = ""
s=socket.socket( )
s.connect((HOST, PORT))
s.send(bytes("NICK %s\r\n" % NICK, "UTF-8"))
s.send(bytes("USER %s %s bla :%s\r\n" % (IDENT, HOST, REALNAME), "UTF-8"))
s.send(bytes("JOIN %s\r\n" % CHANNEL, "UTF-8"));
s.send(bytes("PRIVMSG %s :Hello Master\r\n" % MASTER, "UTF-8"))
def say(message):
s.send(bytes("PRIVMSG %s :%s \r\n" % (CHANNEL, message), "UTF-8"))
@timeout(2)
def evaluar(expr):
resultado = eval_expr(expr)
r = 'dec: %d hex: %s' % (resultado, hex(resultado))
return r
while 1:
readbuffer = readbuffer+s.recv(1024).decode("UTF-8")
temp = str.split(readbuffer, "\n")
readbuffer=temp.pop( )
for line in temp:
line = str.rstrip(line)
line = str.split(line)
if(line[0] == "PING"):
s.send(bytes("PONG %s\r\n" % line[1], "UTF-8"))
if(line[1] == "PRIVMSG"):
sender = ""
for char in line[0]:
if(char == "!"):
break
if(char != ":"):
sender += char
size = len(line)
i = 3
message = ""
while(i < size):
message += line[i] + ' '
i = i + 1
message = message[1:]
parsed = message.split()
if parsed[0] == 'furfi:':
say('Para ver todo lo que puedo hacer, decí "!help".')
elif parsed[0] == '!manual' or parsed[0] == '!manuales':
say('Introducción: %s' % 'http://goo.gl/50IZdI')
say('Instrucciones (A-Z): %s' % 'http://goo.gl/l3GxUm')
say('System Programming (TP3): %s' % 'http://goo.gl/VxFcxU')
elif parsed[0] == '!asm':
instr = parsed[1].upper()
if instr in asm:
say('[%s] Descripción: %s. Más info: %s' % (
instr,
asm[instr]['description'],
asm[instr]['url']))
elif parsed[0] == '!eval':
print(line)
expr = ' '.join(parsed[1:])
try:
say(evaluar(expr))
except:
say('Error evaluando.')
elif parsed[0] == '!help':
say('!asm <instruccion> - Información sobre una instrucción.')
say('!eval<expresión> - Evaluar una expresión.')
say('!manuales - Link a los manuales.')
say('!help - Ver este mensaje.')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment