Skip to content

Instantly share code, notes, and snippets.

@Konctantin
Created May 6, 2016 13:03
Show Gist options
  • Select an option

  • Save Konctantin/372facb0bcd8d58efb47ce6e68852cbc to your computer and use it in GitHub Desktop.

Select an option

Save Konctantin/372facb0bcd8d58efb47ce6e68852cbc to your computer and use it in GitHub Desktop.
list = [
[ "AAA", "37", "", "", False, True, "ASCII Adjust After Addition", "ASCII adjust AL after addition." ],
[ "AAD", "D5 0A", "", "", False, True, "ASCII Adjust AX Before Division", "ASCII adjust AX before division." ],
[ "AAD", "D5 ib", "imm8", "I", False, True, "ASCII Adjust AX Before Division", "Adjust AX before division to number base imm8." ],
[ "AAM", "D4 0A", "", "", False, True, "ASCII Adjust AX After Multiply", "ASCII adjust AX after multiply." ],
[ "AAM", "D4 ib", "imm8", "I", False, True, "ASCII Adjust AX After Multiply", "Adjust AX after multiply to number base imm8." ],
[ "AAS", "3F", "", "", False, True, "ASCII Adjust AL After Subtraction", "ASCII adjust AL after subtraction." ],
[ "ADC", "14 ib", "AL, imm8", "FI", True, True, "Add with Carry", "Add with carry imm8 to AL." ],
[ "ADC", "15 iw", "AX, imm16", "FI", True, True, "Add with Carry", "Add with carry imm16 to AX." ],
[ "ADC", "15 id", "EAX, imm32", "FI", True, True, "Add with Carry", "Add with carry imm32 to EAX." ],
[ "ADC", "REX.W+ 15 id", "RAX, imm32", "FI", True, False, "Add with Carry", "Add with carry imm32 sign extended to 64-bits to RAX." ],
[ "ADC", "80 /2 ib", "r/m8, imm8", "MI", True, True, "Add with Carry", "Add with carry imm8 to r/m8." ],
[ "ADC", "REX+ 80 /2 ib", "r/m8, imm8", "MI", True, False, "Add with Carry", "Add with carry imm8 to r/m8." ],
[ "ADC", "81 /2 iw", "r/m16, imm16", "MI", True, True, "Add with Carry", "Add with carry imm16 to r/m16." ],
[ "ADC", "81 /2 id", "r/m32, imm32", "MI", True, True, "Add with Carry", "Add with CF imm32 to r/m32." ],
[ "ADC", "REX.W+ 81 /2 id", "r/m64, imm32", "MI", True, False, "Add with Carry", "Add with CF imm32 sign extended to 64-bits to r/m64." ],
[ "ADC", "83 /2 ib", "r/m16, imm8", "MI", True, True, "Add with Carry", "Add with CF sign-extended imm8 to r/m16." ],
[ "ADC", "83 /2 ib", "r/m32, imm8", "MI", True, True, "Add with Carry", "Add with CF sign-extended imm8 into r/m32." ],
[ "ADC", "REX.W+ 83 /2 ib", "r/m64, imm8", "MI", True, False, "Add with Carry", "Add with CF sign-extended imm8 into r/m64." ],
[ "ADC", "10 /r", "r/m8, r8", "MR", True, True, "Add with Carry", "Add with carry byte register to r/m8." ],
[ "ADC", "REX+ 10 /r", "r/m8, r8", "MR", True, False, "Add with Carry", "Add with carry byte register to r/m64." ],
[ "ADC", "11 /r", "r/m16, r16", "MR", True, True, "Add with Carry", "Add with carry r16 to r/m16." ],
[ "ADC", "11 /r", "r/m32, r32", "MR", True, True, "Add with Carry", "Add with CF r32 to r/m32." ],
[ "ADC", "REX.W+ 11 /r", "r/m64, r64", "MR", True, False, "Add with Carry", "Add with CF r64 to r/m64." ],
[ "ADC", "12 /r", "r8, r/m8", "RM", True, True, "Add with Carry", "Add with carry r/m8 to byte register." ],
[ "ADC", "REX+ 12 /r", "r8, r/m8", "RM", True, False, "Add with Carry", "Add with carry r/m64 to byte register." ],
[ "ADC", "13 /r", "r16, r/m16", "RM", True, True, "Add with Carry", "Add with carry r/m16 to r16." ],
[ "ADC", "13 /r", "r32, r/m32", "RM", True, True, "Add with Carry", "Add with CF r/m32 to r32." ],
[ "ADC", "REX.W+ 13 /r", "r64, r/m64", "RM", True, False, "Add with Carry", "Add with CF r/m64 to r64." ],
[ "ADD", "04 ib", "AL, imm8", "FI", True, True, "Add", "Add imm8 to AL." ],
[ "ADD", "05 iw", "AX, imm16", "FI", True, True, "Add", "Add imm16 to AX." ],
[ "ADD", "05 id", "EAX, imm32", "FI", True, True, "Add", "Add imm32 to EAX." ],
[ "ADD", "REX.W+ 05 id", "RAX, imm32", "FI", True, False, "Add", "Add imm32 sign-extended to 64-bits to RAX." ],
[ "ADD", "80 /0 ib", "r/m8, imm8", "MI", True, True, "Add", "Add imm8 to r/m8." ],
[ "ADD", "REX+ 80 /0 ib", "r/m8, imm8", "MI", True, False, "Add", "Add sign -extended imm8 to r/m64." ],
[ "ADD", "81 /0 iw", "r/m16, imm16", "MI", True, True, "Add", "Add imm16 to r/m16." ],
[ "ADD", "81 /0 id", "r/m32, imm32", "MI", True, True, "Add", "Add imm32 to r/m32." ],
[ "ADD", "REX.W+ 81 /0 id", "r/m64, imm32", "MI", True, False, "Add", "Add imm32 sign-extended to 64-bits to r/m64." ],
[ "ADD", "83 /0 ib", "r/m16, imm8", "MI", True, True, "Add", "Add sign -extended imm8 to r/m16." ],
[ "ADD", "83 /0 ib", "r/m32, imm8", "MI", True, True, "Add", "Add sign -extended imm8 to r/m32." ],
[ "ADD", "REX.W+ 83 /0 ib", "r/m64, imm8", "MI", True, False, "Add", "Add sign -extended imm8 to r/m64." ],
[ "ADD", "00 /r", "r/m8, r8", "MR", True, True, "Add", "Add r8 to r/m8." ],
[ "ADD", "REX+ 00 /r", "r/m8, r8", "MR", True, False, "Add", "Add r8 to r/m8." ],
[ "ADD", "01 /r", "r/m16, r16", "MR", True, True, "Add", "Add r16 to r/m16." ],
[ "ADD", "01 /r", "r/m32, r32", "MR", True, True, "Add", "Add r32 to r/m32." ],
[ "ADD", "REX.W+ 01 /r", "r/m64, r64", "MR", True, False, "Add", "Add r64 to r/m64." ],
[ "ADD", "02 /r", "r8, r/m8", "RM", True, True, "Add", "Add r/m8 to r8." ],
[ "ADD", "REX+ 02 /r", "r8, r/m8", "RM", True, False, "Add", "Add r/m8 to r8." ],
[ "ADD", "03 /r", "r16, r/m16", "RM", True, True, "Add", "Add r/m16 to r16." ],
[ "ADD", "03 /r", "r32, r/m32", "RM", True, True, "Add", "Add r/m32 to r32." ],
[ "ADD", "REX.W+ 03 /r", "r64, r/m64", "RM", True, False, "Add", "Add r/m64 to r64." ],
[ "AND", "24 ib", "AL, imm8", "FI", True, True, "Logical AND", "AL AND imm8." ],
[ "AND", "25 iw", "AX, imm16", "FI", True, True, "Logical AND", "AX AND i mm16." ],
[ "AND", "25 id", "EAX, imm32", "FI", True, True, "Logical AND", "EAX AND imm32." ],
[ "AND", "REX.W+ 25 id", "RAX, imm32", "FI", True, False, "Logical AND", "RAX AND imm32 sign-extended to 64-bits." ],
[ "AND", "80 /4 ib", "r/m8, imm8", "MI", True, True, "Logical AND", "r/m8 AND imm8." ],
[ "AND", "REX+ 80 /4 ib", "r/m8, imm8", "MI", True, False, "Logical AND", "r/m8 AND imm8." ],
[ "AND", "81 /4 iw", "r/m16, imm16", "MI", True, True, "Logical AND", "r/m16 AND imm16." ],
[ "AND", "81 /4 id", "r/m32, imm32", "MI", True, True, "Logical AND", "r/m32 AND imm32." ],
[ "AND", "REX.W+ 81 /4 id", "r/m64, imm32", "MI", True, False, "Logical AND", "r/m64 AND imm32 sign extended to 64-bits." ],
[ "AND", "83 /4 ib", "r/m16, imm8", "MI", True, True, "Logical AND", "r/m16 AND imm8 (sign-extended)." ],
[ "AND", "83 /4 ib", "r/m32, imm8", "MI", True, True, "Logical AND", "r/m32 AND imm8 (sign-extended)." ],
[ "AND", "REX.W+ 83 /4 ib", "r/m64, imm8", "MI", True, False, "Logical AND", "r/m64 AND imm8 (sign-extended)." ],
[ "AND", "20 /r", "r/m8, r8", "MR", True, True, "Logical AND", "r/m8 AND r8." ],
[ "AND", "REX+ 20 /r", "r/m8, r8", "MR", True, False, "Logical AND", "r/m64 AND r8 (sign-extended)." ],
[ "AND", "21 /r", "r/m16, r16", "MR", True, True, "Logical AND", "r/m16 AND r16." ],
[ "AND", "21 /r", "r/m32, r32", "MR", True, True, "Logical AND", "r/m32 AND r32." ],
[ "AND", "REX.W+ 21 /r", "r/m64, r64", "MR", True, False, "Logical AND", "r/m64 AND r32." ],
[ "AND", "22 /r", "r8, r/m8", "RM", True, True, "Logical AND", "r8 AND r/m8." ],
[ "AND", "REX+ 22 /r", "r8, r/m8", "RM", True, False, "Logical AND", "r/m64 AND r8 (sign-extended)." ],
[ "AND", "23 /r", "r16, r/m16", "RM", True, True, "Logical AND", "r16 AND r/m16." ],
[ "AND", "23 /r", "r32, r/m32", "RM", True, True, "Logical AND", "r32 AND r/m32." ],
[ "AND", "REX.W+ 23 /r", "r64, r/m64", "RM", True, False, "Logical AND", "r64 AND r/m64." ],
[ "ARPL", "63 /r", "r/m16, r16", "MR", False, True, "Adjust RPL Field of Segment Selector", "Adjust RPL of r/m16 to not less than RPL of r16." ],
[ "BOUND", "62 /r", "r16, m16&16", "RM", False, True, "Check Array Index Against Bounds", "Check if r16 (array index) is within bounds specified by m16&16." ],
[ "BOUND", "62 /r", "r32, m32&32", "RM", False, True, "Check Array Index Against Bounds", "Check if r32 (array index) is within bounds specified by m32&32." ],
[ "BSF", "0F BC /r", "r16, r/m16", "RM", True, True, "Bit Scan Forward", "Bit scan forward on r/m16." ],
[ "BSF", "0F BC /r", "r32, r/m32", "RM", True, True, "Bit Scan Forward", "Bit scan forward on r/m32." ],
[ "BSF", "REX.W+ 0F BC /r", "r64, r/m64", "RM", True, False, "Bit Scan Forward", "Bit scan forward on r/m64." ],
[ "BSR", "0F BD /r", "r16, r/m16", "RM", True, True, "Bit Scan Reverse", "Bit scan reverse on r/m16." ],
[ "BSR", "0F BD /r", "r32, r/m32", "RM", True, True, "Bit Scan Reverse", "Bit scan reverse on r/m32." ],
[ "BSR", "REX.W+ 0F BD /r", "r64, r/m64", "RM", True, False, "Bit Scan Reverse", "Bit scan reverse on r/m64." ],
[ "BSWAP", "0F C8+ rd", "r32", "O", True, True, "Byte Swap", "Reverses the byte order of a 32-bit register." ],
[ "BSWAP", "REX.W+ 0F C8+ rd", "r64", "O", True, False, "Byte Swap", "Reverses the byte order of a 64-bit register." ],
[ "BT", "0F A3 /r", "r/m16, r16", "MR", True, True, "Bit Test", "Store selected bit in CF flag." ],
[ "BT", "0F A3 /r", "r/m32, r32", "MR", True, True, "Bit Test", "Store selected bit in CF flag." ],
[ "BT", "REX.W+ 0F A3 /r", "r/m64, r64", "MR", True, False, "Bit Test", "Store selected bit in CF flag." ],
[ "BT", "0F BA /4 ib", "r/m16, imm8", "MI", True, True, "Bit Test", "Store selected bit in CF flag." ],
[ "BT", "0F BA /4 ib", "r/m32, imm8", "MI", True, True, "Bit Test", "Store selected bit in CF flag." ],
[ "BT", "REX.W+ 0F BA /4 ib", "r/m64, imm8", "MI", True, False, "Bit Test", "Store selected bit in CF flag." ],
[ "BTC", "0F BB /r", "r/m16, r16", "MR", True, True, "Bit Test and Complement", "Store selected bit in CF flag and complement." ],
[ "BTC", "0F BB /r", "r/m32, r32", "MR", True, True, "Bit Test and Complement", "Store selected bit in CF flag and complement." ],
[ "BTC", "REX.W+ 0F BB /r", "r/m64, r64", "MR", True, False, "Bit Test and Complement", "Store selected bit in CF flag and complement." ],
[ "BTC", "0F BA /7 ib", "r/m16, imm8", "MI", True, True, "Bit Test and Complement", "Store selected bit in CF flag and complement." ],
[ "BTC", "0F BA /7 ib", "r/m32, imm8", "MI", True, True, "Bit Test and Complement", "Store selected bit in CF flag and complement." ],
[ "BTC", "REX.W+ 0F BA /7 ib", "r/m64, imm8", "MI", True, False, "Bit Test and Complement", "Store selected bit in CF flag and complement." ],
[ "BTR", "0F B3 /r", "r/m16, r16", "MR", True, True, "Bit Test and Reset", "Store selected bit in CF flag and clear." ],
[ "BTR", "0F B3 /r", "r/m32, r32", "MR", True, True, "Bit Test and Reset", "Store selected bit in CF flag and clear." ],
[ "BTR", "REX.W+ 0F B3 /r", "r/m64, r64", "MR", True, False, "Bit Test and Reset", "Store selected bit in CF flag and clear." ],
[ "BTR", "0F BA /6 ib", "r/m16, imm8", "MI", True, True, "Bit Test and Reset", "Store selected bit in CF flag and clear." ],
[ "BTR", "0F BA /6 ib", "r/m32, imm8", "MI", True, True, "Bit Test and Reset", "Store selected bit in CF flag and clear." ],
[ "BTR", "REX.W+ 0F BA /6 ib", "r/m64, imm8", "MI", True, False, "Bit Test and Reset", "Store selected bit in CF flag and clear." ],
[ "BTS", "0F AB /r", "r/m16, r16", "MR", True, True, "Bit Test and Set", "Store selected bit in CF flag and set." ],
[ "BTS", "0F AB /r", "r/m32, r32", "MR", True, True, "Bit Test and Set", "Store selected bit in CF flag and set." ],
[ "BTS", "REX.W+ 0F AB /r", "r/m64, r64", "MR", True, False, "Bit Test and Set", "Store selected bit in CF flag and set." ],
[ "BTS", "0F BA /5 ib", "r/m16, imm8", "MI", True, True, "Bit Test and Set", "Store selected bit in CF flag and set." ],
[ "BTS", "0F BA /5 ib", "r/m32, imm8", "MI", True, True, "Bit Test and Set", "Store selected bit in CF flag and set." ],
[ "BTS", "REX.W+ 0F BA /5 ib", "r/m64, imm8", "MI", True, False, "Bit Test and Set", "Store selected bit in CF flag and set." ],
[ "CALL", "E8 cw", "rel16", "M", False, True, "Call Procedure", "Call near, relative, displacement relative to next instruction." ],
[ "CALL", "E8 cd", "rel32", "M", True, True, "Call Procedure", "Call near, relative, displacement relative to next instruction. 32-bit displacement sign extended to 64-bits in 64-bit mode." ],
[ "CALL", "FF /2", "r/m16", "M", False, True, "Call Procedure", "Call near, absolute indirect, address given in r/m16." ],
[ "CALL", "FF /2", "r/m32", "M", False, True, "Call Procedure", "Call near, absolute indirect, address given in r/m32." ],
[ "CALL", "FF /2", "r/m64", "M", True, False, "Call Procedure", "Call near, absolute indirect, address given in r/m 64." ],
[ "CALL", "9A cd", "ptr16:16", "D", False, True, "Call Procedure", "Call far, absolute, address given in operand." ],
[ "CALL", "9A cp", "ptr16:32", "D", False, True, "Call Procedure", "Call far, absolute, address given in operand." ],
[ "CALL", "FF /3", "m16:16", "M", True, True, "Call Procedure", "Call far, absolute indirect address given inm16:16. In 32-bit mode: if selector points to a gate, then RIP = 32-bit zero extended displacement taken from gate; else RIP = zero extended 16-bit offset from far pointer referenced in the instruction." ],
[ "CALL", "FF /3", "m16:32", "M", True, True, "Call Procedure", "In 64-bit mode: If selector points to a gate, then RIP = 64-bit displacement taken from gate; else RIP = zero extended 32-bit offset from far pointer referenced in the instruction." ],
[ "CALL", "REX.W+ FF /3", "m16:64", "M", True, False, "Call Procedure", "In 64-bit mode: If selector points to a gate, then RIP = 64-bit displacement taken from gate; else RIP = 64-bit offset from far pointer referenced in the instruction." ],
[ "CBW", "98", "", "", True, True, "Convert Byte to Word/Convert Word to Doubleword/Convert Doubleword to Quadword", "AX <- sign-extend of AL." ],
[ "CWDE", "98", "", "", True, True, "Convert Byte to Word/Convert Word to Doubleword/Convert Doubleword to Quadword", "EAX <- sign-extend of AX." ],
[ "CDQE", "REX.W+ 98", "", "", True, False, "Convert Byte to Word/Convert Word to Doubleword/Convert Doubleword to Quadword", "RAX <- sign-extend of EAX." ],
[ "CLAC", "0F 01 CA", "", "", True, True, "Clear AC Flag in EFLAGS Register", "Clear the AC flag in the EFLAGS register." ],
[ "CLC", "F8", "", "", True, True, "Clear Carry Flag", "Clear CF flag." ],
[ "CLD", "FC", "", "", True, True, "Clear Direction Flag", "Clear DF flag." ],
[ "CLFLUSH", "0F AE /7", "m8", "M", True, True, "Flush Cache Line", "Flushes cache line containing m8." ],
[ "CLI", "FA", "", "", True, True, "Clear Interrupt Flag", "Clear interrupt flag; interrupts disabled when interrupt flag cleared." ],
[ "CLTS", "0F 06", "", "", True, True, "Clear Task-Switched Flag in CR0", "Clears TS flag in CR0." ],
[ "CMC", "F5", "", "", True, True, "Complement Carry Flag", "Complement CF flag." ],
[ "CMOVA", "0F 47 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if above (CF=0 and ZF=0)." ],
[ "CMOVA", "0F 47 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if above (CF=0 and ZF=0)." ],
[ "CMOVA", "REX.W+ 0F 47 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if above (CF=0 and ZF=0)." ],
[ "CMOVAE", "0F 43 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if above or equal (CF=0)." ],
[ "CMOVAE", "0F 43 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if above or equal (CF=0)." ],
[ "CMOVAE", "REX.W+ 0F 43 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if above or equal (CF=0)." ],
[ "CMOVB", "0F 42 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if below (CF=1)." ],
[ "CMOVB", "0F 42 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if below (CF=1)." ],
[ "CMOVB", "REX.W+ 0F 42 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if below (CF=1)." ],
[ "CMOVBE", "0F 46 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if below or equal (CF=1 or ZF=1)." ],
[ "CMOVBE", "0F 46 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if below or equal (CF=1 or ZF=1)." ],
[ "CMOVBE", "REX.W+ 0F 46 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if below or equal (CF=1 or ZF=1)." ],
[ "CMOVC", "0F 42 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if carry (CF=1)." ],
[ "CMOVC", "0F 42 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if carry (CF=1)." ],
[ "CMOVC", "REX.W+ 0F 42 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if carry (CF=1)." ],
[ "CMOVE", "0F 44 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if equal (ZF=1)." ],
[ "CMOVE", "0F 44 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if equal (ZF=1)." ],
[ "CMOVE", "REX.W+ 0F 44 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if equal (ZF=1)." ],
[ "CMOVG", "0F 4F /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if greater (ZF=0 and SF=OF)." ],
[ "CMOVG", "0F 4F /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if greater (ZF=0 and SF=OF)." ],
[ "CMOVG", "REX.W+ 0F 4F /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if greater (ZF=0 and SF=OF)." ],
[ "CMOVGE", "0F 4D /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if greater or equal (SF=OF)." ],
[ "CMOVGE", "0F 4D /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if greater or equal (SF=OF)." ],
[ "CMOVGE", "REX.W+ 0F 4D /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if greater or equal (SF=OF)." ],
[ "CMOVL", "0F 4C /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if less (SF<>OF)." ],
[ "CMOVL", "0F 4C /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if less (SF<>OF)." ],
[ "CMOVL", "REX.W+ 0F 4C /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if less (SF<>OF)." ],
[ "CMOVLE", "0F 4E /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if less or equal (ZF=1 or SF<>OF)." ],
[ "CMOVLE", "0F 4E /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if less or equal (ZF=1 or SF<>OF)." ],
[ "CMOVLE", "REX.W+ 0F 4E /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if less or equal (ZF=1 or SF<>OF)." ],
[ "CMOVNA", "0F 46 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not above (CF=1 or ZF=1)." ],
[ "CMOVNA", "0F 46 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not above (CF=1 or ZF=1)." ],
[ "CMOVNA", "REX.W+ 0F 46 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not above (CF=1 or ZF=1)." ],
[ "CMOVNAE", "0F 42 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not above or equal (CF=1)." ],
[ "CMOVNAE", "0F 42 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not above or equal (CF=1)." ],
[ "CMOVNAE", "REX.W+ 0F 42 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not above or equal (CF=1)." ],
[ "CMOVNB", "0F 43 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not below (CF=0)." ],
[ "CMOVNB", "0F 43 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not below (CF=0)." ],
[ "CMOVNB", "REX.W+ 0F 43 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not below (CF=0)." ],
[ "CMOVNBE", "0F 47 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not below or equal (CF=0 and ZF=0)." ],
[ "CMOVNBE", "0F 47 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not below or equal (CF=0 and ZF=0)." ],
[ "CMOVNBE", "REX.W+ 0F 47 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not below or equal (CF=0 and ZF=0)." ],
[ "CMOVNC", "0F 43 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not carry (CF=0)." ],
[ "CMOVNC", "0F 43 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not carry (CF=0)." ],
[ "CMOVNC", "REX.W+ 0F 43 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not carry (CF=0)." ],
[ "CMOVNE", "0F 45 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not equal (ZF=0)." ],
[ "CMOVNE", "0F 45 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not equal (ZF=0)." ],
[ "CMOVNE", "REX.W+ 0F 45 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not equal (ZF=0)." ],
[ "CMOVNG", "0F 4E /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not greater (ZF=1 or SF<>OF)." ],
[ "CMOVNG", "0F 4E /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not greater (ZF=1 or SF<>OF)." ],
[ "CMOVNG", "REX.W+ 0F 4E /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not greater (ZF=1 or SF<>OF)." ],
[ "CMOVNGE", "0F 4C /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not greater or equal (SF<>OF)." ],
[ "CMOVNGE", "0F 4C /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not greater or equal (SF<>OF)." ],
[ "CMOVNGE", "REX.W+ 0F 4C /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not greater or equal (SF<>OF)." ],
[ "CMOVNL", "0F 4D /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not less (SF=OF)." ],
[ "CMOVNL", "0F 4D /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not less (SF=OF)." ],
[ "CMOVNL", "REX.W+ 0F 4D /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not less (SF=OF)." ],
[ "CMOVNLE", "0F 4F /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not less or equal (ZF=0 and SF=OF)." ],
[ "CMOVNLE", "0F 4F /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not less or equal (ZF=0 and SF=OF)." ],
[ "CMOVNLE", "REX.W+ 0F 4F /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not less or equal (ZF=0 and SF=OF)." ],
[ "CMOVNO", "0F 41 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not overflow (OF=0)." ],
[ "CMOVNO", "0F 41 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not overflow (OF=0)." ],
[ "CMOVNO", "REX.W+ 0F 41 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not overflow (OF=0)." ],
[ "CMOVNP", "0F 4B /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not parity (PF=0)." ],
[ "CMOVNP", "0F 4B /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not parity (PF=0)." ],
[ "CMOVNP", "REX.W+ 0F 4B /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not parity (PF=0)." ],
[ "CMOVNS", "0F 49 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not sign (SF=0)." ],
[ "CMOVNS", "0F 49 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not sign (SF=0)." ],
[ "CMOVNS", "REX.W+ 0F 49 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not sign (SF=0)." ],
[ "CMOVNZ", "0F 45 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if not zero (ZF=0)." ],
[ "CMOVNZ", "0F 45 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if not zero (ZF=0)." ],
[ "CMOVNZ", "REX.W+ 0F 45 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if not zero (ZF=0)." ],
[ "CMOVO", "0F 40 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if overflow (OF=1)." ],
[ "CMOVO", "0F 40 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if overflow (OF=1)." ],
[ "CMOVO", "REX.W+ 0F 40 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if overflow (OF=1)." ],
[ "CMOVP", "0F 4A /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if parity (PF=1)." ],
[ "CMOVP", "0F 4A /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if parity (PF=1)." ],
[ "CMOVP", "REX.W+ 0F 4A /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if parity (PF=1)." ],
[ "CMOVPE", "0F 4A /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if parity even (PF=1)." ],
[ "CMOVPE", "0F 4A /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if parity even (PF=1)." ],
[ "CMOVPE", "REX.W+ 0F 4A /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if parity even (PF=1)." ],
[ "CMOVPO", "0F 4B /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if parity odd (PF=0)." ],
[ "CMOVPO", "0F 4B /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if parity odd (PF=0)." ],
[ "CMOVPO", "REX.W+ 0F 4B /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if parity odd (PF=0)." ],
[ "CMOVS", "0F 48 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if sign (SF=1)." ],
[ "CMOVS", "0F 48 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if sign (SF=1)." ],
[ "CMOVS", "REX.W+ 0F 48 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if sign (SF=1)." ],
[ "CMOVZ", "0F 44 /r", "r16, r/m16", "RM", True, True, "Conditional Move", "Move if zero (ZF=1)." ],
[ "CMOVZ", "0F 44 /r", "r32, r/m32", "RM", True, True, "Conditional Move", "Move if zero (ZF=1)." ],
[ "CMOVZ", "REX.W+ 0F 44 /r", "r64, r/m64", "RM", True, False, "Conditional Move", "Move if zero (ZF=1)." ],
[ "CMP", "3C ib", "AL, imm8", "FI", True, True, "Compare Two Operands", "Compare imm8 with AL." ],
[ "CMP", "3D iw", "AX, imm16", "FI", True, True, "Compare Two Operands", "Compare imm16 with AX." ],
[ "CMP", "3D id", "EAX, imm32", "FI", True, True, "Compare Two Operands", "Compare imm32 with EAX." ],
[ "CMP", "REX.W+ 3D id", "RAX, imm32", "FI", True, False, "Compare Two Operands", "Compare imm32 sign-extended to 64-bits with RAX." ],
[ "CMP", "80 /7 ib", "r/m8, imm8", "MI", True, True, "Compare Two Operands", "Compare imm8 with r/m8." ],
[ "CMP", "REX+ 80 /7 ib", "r/m8, imm8", "MI", True, False, "Compare Two Operands", "Compare imm8 with r/m8." ],
[ "CMP", "81 /7 iw", "r/m16, imm16", "MI", True, True, "Compare Two Operands", "Compare imm16 with r/m16." ],
[ "CMP", "81 /7 id", "r/m32, imm32", "MI", True, True, "Compare Two Operands", "Compare imm32 with r/m32." ],
[ "CMP", "REX.W+ 81 /7 id", "r/m64, imm32", "MI", True, False, "Compare Two Operands", "Compare imm32 sign-extended to 64-bits with r/m64." ],
[ "CMP", "83 /7 ib", "r/m16, imm8", "MI", True, True, "Compare Two Operands", "Compare imm8 with r/m16." ],
[ "CMP", "83 /7 ib", "r/m32, imm8", "MI", True, True, "Compare Two Operands", "Compare imm8 with r/m32." ],
[ "CMP", "REX.W+ 83 /7 ib", "r/m64, imm8", "MI", True, False, "Compare Two Operands", "Compare imm8 with r/m64." ],
[ "CMP", "38 /r", "r/m8, r8", "MR", True, True, "Compare Two Operands", "Compare r8 with r/m8." ],
[ "CMP", "REX+ 38 /r", "r/m8, r8", "MR", True, False, "Compare Two Operands", "Compare r8 with r/m8." ],
[ "CMP", "39 /r", "r/m16, r16", "MR", True, True, "Compare Two Operands", "Compare r16 with r/m16." ],
[ "CMP", "39 /r", "r/m32, r32", "MR", True, True, "Compare Two Operands", "Compare r32 with r/m32." ],
[ "CMP", "REX.W+ 39 /r", "r/m64,r64", "MR", True, False, "Compare Two Operands", "Compare r64 with r/m64." ],
[ "CMP", "3A /r", "r8, r/m8", "RM", True, True, "Compare Two Operands", "Compare r/m8 with r8." ],
[ "CMP", "REX+ 3A /r", "r8, r/m8", "RM", True, False, "Compare Two Operands", "Compare r/m8 with r8." ],
[ "CMP", "3B /r", "r16, r/m16", "RM", True, True, "Compare Two Operands", "Compare r/m16 with r16." ],
[ "CMP", "3B /r", "r32, r/m32", "RM", True, True, "Compare Two Operands", "Compare r/m32 with r32." ],
[ "CMP", "REX.W+ 3B /r", "r64, r/m64", "RM", True, False, "Compare Two Operands", "Compare r/m64 with r64." ],
[ "CMPS", "A6", "m8, m8", "", True, True, "Compare String Operands", "For legacy mode, compare byte at address DS:(E)SI with byte at address ES:(E)DI; For 64-bit mode compare byte at address (R|E)SI to byte at address (R|E)DI. The status flags are set accordingly." ],
[ "CMPS", "A7", "m16, m16", "", True, True, "Compare String Operands", "For legacy mode, compare word at address DS:(E)SI with word at address ES:(E)DI; For 64-bit mode compare word at address (R|E)SI with word at address (R|E)DI. The status flags are set accordingly." ],
[ "CMPS", "A7", "m32, m32", "", True, True, "Compare String Operands", "For legacy mode, compare dword at address DS:(E)SI at dword at address ES:(E)DI; For 64-bit mode compare dword at address (R|E)SI at dword at address (R|E)DI. The status flags are set accordingly." ],
[ "CMPS", "REX.W+ A7", "m64, m64", "", True, False, "Compare String Operands", "Compares quadword at address (R|E)SI with quadword at address (R|E)DI and sets the status flags accordingly." ],
[ "CMPSB", "A6", "", "", True, True, "Compare String Operands", "For legacy mode, compare byte at address DS:(E)SI with byte at address ES:(E)DI; For 64-bit mode compare byte at address (R|E)SI with byte at address (R|E)DI. The status flags are set accordingly." ],
[ "CMPSW", "A7", "", "", True, True, "Compare String Operands", "For legacy mode, compare word at address DS:(E)SI with word at address ES:(E)DI; For 64-bit mode compare word at address (R|E)SI with word at address (R|E)DI. The status flags are set accordingly." ],
[ "CMPSD", "A7", "", "", True, True, "Compare String Operands", "For legacy mode, compare dword at address DS:(E)SI with dword at address ES:(E)DI; For 64-bit mode compare dword at address (R|E)SI with dword at address (R|E)DI. The status flags are set accordingly." ],
[ "CMPSQ", "REX.W+ A7", "", "", True, False, "Compare String Operands", "Compares quadword at address (R|E)SI with quadword at address (R|E)DI and sets the status flags accordingly." ],
[ "CPUID", "0F A2", "", "", True, True, "CPU Identification", "Returns processor identification and feature information to the EAX, EBX, ECX, and EDX registers, as determined by input entered in EAX (in some cases, ECX as well)." ],
[ "CWD", "99", "", "", True, True, "Convert Word to Doubleword/Convert Doubleword to Quadword", "DX:AX <- sign-extend of AX." ],
[ "CDQ", "99", "", "", True, True, "Convert Word to Doubleword/Convert Doubleword to Quadword", "EDX:EAX <- sign-extend of EAX." ],
[ "CQO", "REX.W+ 99", "", "", True, False, "Convert Word to Doubleword/Convert Doubleword to Quadword", "RDX:RAX<- sign-extend of RAX." ],
[ "DAA", "27", "", "", False, True, "Decimal Adjust AL after Addition", "Decimal adjust AL after addition." ],
[ "DAS", "2F", "", "", False, True, "Decimal Adjust AL after Subtraction", "Decimal adjust AL after subtraction." ],
[ "DEC", "FE /1", "r/m8", "M", True, True, "Decrement by 1", "Decrement r/m8 by 1." ],
[ "DEC", "REX+ FE /1", "r/m8", "M", True, False, "Decrement by 1", "Decrement r/m8 by 1." ],
[ "DEC", "FF /1", "r/m16", "M", True, True, "Decrement by 1", "Decrement r/m16 by 1." ],
[ "DEC", "FF /1", "r/m32", "M", True, True, "Decrement by 1", "Decrement r/m32 by 1." ],
[ "DEC", "REX.W+ FF /1", "r/m64", "M", True, False, "Decrement by 1", "Decrement r/m64 by 1." ],
[ "DEC", "48+rw", "r16", "O", False, True, "Decrement by 1", "Decrement r16 by 1." ],
[ "DEC", "48+rd", "r32", "O", False, True, "Decrement by 1", "Decrement r32 by 1." ],
[ "DIV", "F6 /6", "r/m8", "M", True, True, "Unsigned Divide", "Unsigned divide AX by r/m8 , with result stored in AL <- Quotient, AH <- Remainder." ],
[ "DIV", "REX+ F6 /6", "r/m8", "M", True, False, "Unsigned Divide", "Unsigned divide AX by r/m8 , with result stored in AL <- Quotient, AH <- Remainder." ],
[ "DIV", "F7 /6", "r/m16", "M", True, True, "Unsigned Divide", "Unsigned divide DX:AX by r/m16 , with result stored in AX <- Quotient, DX <- Remainder." ],
[ "DIV", "F7 /6", "r/m32", "M", True, True, "Unsigned Divide", "Unsigned divide EDX:EAX by r/m32 , with result stored in EAX <- Quotient, EDX <- Remainder." ],
[ "DIV", "REX.W+ F7 /6", "r/m64", "M", True, False, "Unsigned Divide", "Unsigned divide RDX:RAX by r/m64 , with result stored in RAX <- Quotient, RDX <- Remainder." ],
[ "EMMS", "0F 77", "", "", True, True, "Empty MMX Technology State", "Set the x87 FPU tag word to empty." ],
[ "ENTER", "C8 iw 00", "imm16, 0", "II", True, True, "Make Stack Frame for Procedure Parameters", "Create a stack frame for a procedure." ],
[ "ENTER", "C8 iw 01", "imm16, 1", "II", True, True, "Make Stack Frame for Procedure Parameters", "Create a nested stack frame for a procedure." ],
[ "ENTER", "C8 iw ib", "imm16, imm8", "II", True, True, "Make Stack Frame for Procedure Parameters", "Create a nested stack frame for a procedure." ],
[ "HLT", "F4", "", "", True, True, "Halt", "" ],
[ "IDIV", "F6 /7", "r/m8", "M", True, True, "Signed Divide", "Signed divide AX by r/m 8, with result stored in: AL <- Quotient, AH <- Remainder." ],
[ "IDIV", "REX+ F6 /7", "r/m8", "M", True, False, "Signed Divide", "Signed divide AX by r/m 8, with result stored in AL <- Quotient, AH <- Remainder." ],
[ "IDIV", "F7 /7", "r/m16", "M", True, True, "Signed Divide", "Signed divide DX:AX by r/m16 , with result stored in AX <- Quotient, DX <- Remainder." ],
[ "IDIV", "F7 /7", "r/m32", "M", True, True, "Signed Divide", "Signed divide EDX:EAX by r/m32 , with result stored in EAX <- Quotient, EDX <- Remainder." ],
[ "IDIV", "REX.W+ F7 /7", "r/m64", "M", True, False, "Signed Divide", "Signed divide RDX:RAX by r/m64 , with result stored in RAX <- Quotient, RDX <- Remainder." ],
[ "IMUL", "F6 /5", "r/m8", "M", True, True, "Signed Multiply", "AX<- AL ∗ r/m byte." ],
[ "IMUL", "F7 /5", "r/m16", "M", True, True, "Signed Multiply", "DX:AX <- AX ∗ r/m word." ],
[ "IMUL", "F7 /5", "r/m32", "M", True, True, "Signed Multiply", "EDX:EAX <- EAX ∗ r/m 32." ],
[ "IMUL", "REX.W+ F7 /5", "r/m64", "M", True, False, "Signed Multiply", "RDX:RAX <- RAX ∗ r/m 64." ],
[ "IMUL", "0F AF /r", "r16, r/m16", "RM", True, True, "Signed Multiply", "word register <- word register ∗ r/m 16." ],
[ "IMUL", "0F AF /r", "r32, r/m32", "RM", True, True, "Signed Multiply", "doubleword register <- doubleword register ∗ r/m32." ],
[ "IMUL", "REX.W+ 0F AF /r", "r64, r/m64", "RM", True, False, "Signed Multiply", "Quadword register <- Quadword register ∗ r/m64." ],
[ "IMUL", "6B /r ib", "r16, r/m16, imm8", "RMI", True, True, "Signed Multiply", "word register <- r/m16 ∗ sign-extended immediate byte." ],
[ "IMUL", "6B /r ib", "r32, r/m32, imm8", "RMI", True, True, "Signed Multiply", "doubleword register <- r/m32 ∗ sign-extended immediate byte." ],
[ "IMUL", "REX.W+ 6B /r ib", "r64, r/m64, imm8", "RMI", True, False, "Signed Multiply", "Quadword register <- r/m64 ∗ sign-extended immediate byte." ],
[ "IMUL", "69 /r iw", "r16, r/m16, imm16", "RMI", True, True, "Signed Multiply", "word register <- r/m16 ∗ immediate word." ],
[ "IMUL", "69 /r id", "r32, r/m32, imm32", "RMI", True, True, "Signed Multiply", "doubleword register <- r/m32 ∗ immediate doubleword." ],
[ "IMUL", "REX.W+ 69 /r id", "r64, r/m64, imm32", "RMI", True, False, "Signed Multiply", "Quadword register <- r/m64 ∗ immediate doubleword." ],
[ "IN", "E4 ib", "AL, imm8", "FI", True, True, "Input from Port", "Input byte from imm8 I/O port address into AL." ],
[ "IN", "E5 ib", "AX, imm8", "FI", True, True, "Input from Port", "Input word from imm8 I/O port address into AX." ],
[ "IN", "E5 ib", "EAX, imm8", "FI", True, True, "Input from Port", "Input dword from imm8 I/O port address into EAX." ],
[ "IN", "EC", "AL,DX", "", True, True, "Input from Port", "Input byte from I/O port in DX into AL." ],
[ "IN", "ED", "AX,DX", "", True, True, "Input from Port", "Input word from I/O port in DX into AX." ],
[ "IN", "ED", "EAX,DX", "", True, True, "Input from Port", "Input doubleword from I/O port in DX into EAX." ],
[ "INC", "FE /0", "r/m8", "M", True, True, "Increment by 1", "Increment r/m byte by 1." ],
[ "INC", "REX+ FE /0", "r/m8", "M", True, False, "Increment by 1", "Increment r/m byte by 1." ],
[ "INC", "FF /0", "r/m16", "M", True, True, "Increment by 1", "Increment r/m word by 1." ],
[ "INC", "FF /0", "r/m32", "M", True, True, "Increment by 1", "Increment r/m doubleword by 1." ],
[ "INC", "REX.W+ FF /0", "r/m64", "M", True, False, "Increment by 1", "Increment r/m quadword by 1." ],
[ "INC", "40+ rw", "r16", "O", False, True, "Increment by 1", "Increment word register by 1." ],
[ "INC", "40+ rd", "r32", "O", False, True, "Increment by 1", "Increment doubleword register by 1." ],
[ "INS", "6C", "m8, DX", "", True, True, "Input from Port to String", "Input byte from I/O port specified in DX into memory location specified in ES:(E)DI or RDI.*" ],
[ "INS", "6D", "m16, DX", "", True, True, "Input from Port to String", "Input word from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. 1" ],
[ "INS", "6D", "m32, DX", "", True, True, "Input from Port to String", "Input doubleword from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. 1" ],
[ "INSB", "6C", "", "", True, True, "Input from Port to String", "Input byte from I/O port specified in DX into memory location specified with ES:(E)DI or RDI. 1" ],
[ "INSW", "6D", "", "", True, True, "Input from Port to String", "Input word from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. 1" ],
[ "INSD", "6D", "", "", True, True, "Input from Port to String", "Input doubleword from I/O port specified in DX into memory location specified in ES:(E)DI or RDI. 1" ],
[ "INT", "CC", "3", "", True, True, "Call to Interrupt Procedure", "Interrupt 3—trap to debugger." ],
[ "INT", "CD ib", "imm8", "I", True, True, "Call to Interrupt Procedure", "Interrupt vector specified by immediate byte." ],
[ "INTO", "CE", "", "", False, True, "Call to Interrupt Procedure", "Interrupt 4—if overflow flag is 1." ],
[ "INVD", "0F 08", "", "", True, True, "Invalidate Internal Caches", "Flush internal caches; initiate flushing of external caches." ],
[ "INVLPG", "0F 01 /7", "m", "M", True, True, "Invalidate TLB Entries", "Invalidate TLB entries for page containing m." ],
[ "IRET", "CF", "", "", True, True, "Interrupt Return", "Interrupt return (16-bit operand size)." ],
[ "IRETD", "CF", "", "", True, True, "Interrupt Return", "Interrupt return (32-bit operand size)." ],
[ "IRETQ", "REX.W+ CF", "", "", True, False, "Interrupt Return", "Interrupt return (64-bit operand size)." ],
[ "JMP", "EB cb", "rel8", "D", True, True, "Jump", "Jump short, RIP = RIP + 8-bit displacement sign extended to 64-bits" ],
[ "JMP", "E9 cw", "rel16", "D", False, True, "Jump", "Jump near, relative, displacement relative to next instruction. Not supported in 64-bit mode." ],
[ "JMP", "E9 cd", "rel32", "D", True, True, "Jump", "Jump near, relative, RIP = RIP + 32-bit displacement sign extended to 64-bits" ],
[ "JMP", "FF /4", "r/m16", "M", False, True, "Jump", "Jump near, absolute indirect, address = zero-extended r/m16. Not supported in 64-bit mode." ],
[ "JMP", "FF /4", "r/m32", "M", False, True, "Jump", "Jump near, absolute indirect, address given in r/m32. Not supported in 64-bit mode." ],
[ "JMP", "FF /4", "r/m64", "M", True, False, "Jump", "Jump near, absolute indirect, RIP = 64-Bit offset from register or memory" ],
[ "JMP", "EA cd", "ptr16:16", "D", False, True, "Jump", "Jump far, absolute, address given in operand" ],
[ "JMP", "EA cp", "ptr16:32", "D", False, True, "Jump", "Jump far, absolute, address given in operand" ],
[ "JMP", "FF /5", "m16:16", "D", True, True, "Jump", "Jump far, absolute indirect, address given in m16:16" ],
[ "JMP", "FF /5", "m16:32", "D", True, True, "Jump", "Jump far, absolute indirect, address given in m16:32." ],
[ "JMP", "REX.W+ FF /5", "m16:64", "D", True, False, "Jump", "Jump far, absolute indirect, address given in m16:64." ],
[ "LAHF", "9F", "", "", False, True, "Load Status Flags into AH Register", "Load: AH <- EFLAGS(SF:ZF:0:AF:0:PF:1:CF)." ],
[ "LAR", "0F 02 /r", "r16, r16/m16", "RM", True, True, "Load Access Rights Byte", "r16 <- access rights referenced by r16/m16" ],
[ "LAR", "0F 02 /r", "reg, r32/m16 1", "RM", True, True, "Load Access Rights Byte", "reg <- access rights referenced by r32/m16" ],
[ "LDS", "C5 /r", "r16,m16:16", "RM", False, True, "Load Far Pointer", "Load DS: r16 with far pointer from memory." ],
[ "LDS", "C5 /r", "r32,m16:32", "RM", False, True, "Load Far Pointer", "Load DS: r32 with far pointer from memory." ],
[ "LSS", "0F B2 /r", "r16,m16:16", "RM", True, True, "Load Far Pointer", "Load SS: r16 with far pointer from memory." ],
[ "LSS", "0F B2 /r", "r32,m16:32", "RM", True, True, "Load Far Pointer", "Load SS: r32 with far pointer from memory." ],
[ "LSS", "REX+ 0F B2 /r", "r64,m16:64", "RM", True, False, "Load Far Pointer", "Load SS: r64 with far pointer from memory." ],
[ "LES", "C4 /r", "r16,m16:16", "RM", False, True, "Load Far Pointer", "Load ES: r16 with far pointer from memory." ],
[ "LES", "C4 /r", "r32,m16:32", "RM", False, True, "Load Far Pointer", "Load ES: r32 with far pointer from memory." ],
[ "LFS", "0F B4 /r", "r16,m16:16", "RM", True, True, "Load Far Pointer", "Load FS: r16 with far pointer from memory." ],
[ "LFS", "0F B4 /r", "r32,m16:32", "RM", True, True, "Load Far Pointer", "Load FS: r32 with far pointer from memory." ],
[ "LFS", "REX+ 0F B4 /r", "r64,m16:64", "RM", True, False, "Load Far Pointer", "Load FS: r64 with far pointer from memory." ],
[ "LGS", "0F B5 /r", "r16,m16:16", "RM", True, True, "Load Far Pointer", "Load GS: r16 with far pointer from memory." ],
[ "LGS", "0F B5 /r", "r32,m16:32", "RM", True, True, "Load Far Pointer", "Load GS: r32 with far pointer from memory." ],
[ "LGS", "REX+ 0F B5 /r", "r64,m16:64", "RM", True, False, "Load Far Pointer", "Load GS: r64 with far pointer from memory." ],
[ "LEA", "8D /r", "r16,m16", "RM", True, True, "Load Effective Address", "Store effective address for m in register r16." ],
[ "LEA", "8D /r", "r32,m32", "RM", True, True, "Load Effective Address", "Store effective address for m in register r32." ],
[ "LEA", "REX.W+ 8D /r", "r64,m64", "RM", True, False, "Load Effective Address", "Store effective address for m in register r64." ],
[ "LEAVE", "C9", "", "", True, True, "High Level Procedure Exit", "Set SP to BP, then pop BP." ],
[ "LEAVE", "C9", "", "", False, True, "High Level Procedure Exit", "Set ESP to EBP, then pop EBP." ],
[ "LEAVE", "C9", "", "", True, False, "High Level Procedure Exit", "Set RSP to RBP, then pop RBP." ],
[ "LFENCE", "0F AE E8", "", "", True, True, "Load Fence", "Serializes load operations." ],
[ "LGDT", "0F 01 /2", "m16&32", "M", False, True, "Load Global/Interrupt Descriptor Table Register", "Load m into GDTR." ],
[ "LIDT", "0F 01 /3", "m16&32", "M", False, True, "Load Global/Interrupt Descriptor Table Register", "Load m into IDTR." ],
[ "LGDT", "0F 01 /2", "m16&64", "M", True, False, "Load Global/Interrupt Descriptor Table Register", "Load m into GDTR." ],
[ "LIDT", "0F 01 /3", "m16&64", "M", True, False, "Load Global/Interrupt Descriptor Table Register", "Load m into IDTR." ],
[ "LLDT", "0F 00 /2", "r/m16", "M", True, True, "Load Local Descriptor Table Register", "Load segment selector r/m 16 into LDTR." ],
[ "LMSW", "0F 01 /6", "r/m16", "M", True, True, "Load Machine Status Word", "Loads r/m 16 in machine status word of CR0." ],
[ "LOCK", "F0", "", "", True, True, "Assert LOCK# Signal Prefix", "Asserts LOCK# signal for duration of the accompanying instruction." ],
[ "LODS", "AC", "m8", "", True, True, "Load String", "For legacy mode, Load byte at address DS:(E)SI into AL. For 64-bit mode load byte at address (R)SI into AL." ],
[ "LODS", "AD", "m16", "", True, True, "Load String", "For legacy mode, Load word at address DS:(E)SI into AX. For 64-bit mode load word at address (R)SI into AX." ],
[ "LODS", "AD", "m32", "", True, True, "Load String", "For legacy mode, Load dword at address DS:(E)SI into EAX. For 64-bit mode load dword at address (R)SI into EAX." ],
[ "LODS", "REX.W+ AD", "m64", "", True, False, "Load String", "Load qword at address (R)SI into RAX." ],
[ "LODSB", "AC", "", "", True, True, "Load String", "For legacy mode, Load byte at address DS:(E)SI into AL. For 64-bit mode load byte at address (R)SI into AL." ],
[ "LODSW", "AD", "", "", True, True, "Load String", "For legacy mode, Load word at address DS:(E)SI into AX. For 64-bit mode load word at address (R)SI into AX." ],
[ "LODSD", "AD", "", "", True, True, "Load String", "For legacy mode, Load dword at address DS:(E)SI into EAX. For 64-bit mode load dword at address (R)SI into EAX." ],
[ "LODSQ", "REX.W+ AD", "", "", True, False, "Load String", "Load qword at address (R)SI into RAX." ],
[ "LOOP", "E2 cb", "rel8", "D", True, True, "Loop According to ECX Counter", "Decrement count; jump short if count <>0." ],
[ "LOOPE", "E1 cb", "rel8", "D", True, True, "Loop According to ECX Counter", "Decrement count; jump short if count <>0 and ZF = 1." ],
[ "LOOPNE", "E0 cb", "rel8", "D", True, True, "Loop According to ECX Counter", "Decrement count; jump short if count <>0 and ZF = 0." ],
[ "LSL", "0F 03 /r", "r16, r16/m16", "RM", True, True, "Load Segment Limit", "Load: r16 <- segment limit, selector r16/m16." ],
[ "LSL", "0F 03 /r", "r32, r32/m16", "RM", True, True, "Load Segment Limit", "Load: r32 <- segment limit, selector r32/m16." ],
[ "LSL", "REX.W+ 0F 03 /r", "r64, r32/m16", "RM", True, True, "Load Segment Limit", "Load: r64 <- segment limit, selector r32/m16" ],
[ "LTR", "0F 00 /3", "r/m16", "M", True, True, "Load Task Register", "Load r/m 16 into task register." ],
[ "MFENCE", "0F AE F0", "", "", True, True, "Memory Fence", "Serializes load and store operations." ],
[ "MONITOR", "0F 01 C8", "", "", True, True, "Set Up Monitor Address", "Sets up a linear address range to be monitored by hardware and activates the monitor. The address range should be a write-back memory caching type. The address is DS:EAX (DS:RAX in 64-bit mode)." ],
[ "MOV", "88 /r", "r/m8,r8", "MR", True, True, "Move", "Move r8 to r/m8." ],
[ "MOV", "REX+ 88 /r", "r/m8, r8", "MR", True, False, "Move", "Move r8 to r/m8." ],
[ "MOV", "89 /r", "r/m16,r16", "MR", True, True, "Move", "Move r16 to r/m16." ],
[ "MOV", "89 /r", "r/m32,r32", "MR", True, True, "Move", "Move r32 to r/m32." ],
[ "MOV", "REX.W+ 89 /r", "r/m64,r64", "MR", True, False, "Move", "Move r64 to r/m64." ],
[ "MOV", "8A /r", "r8,r/m8", "RM", True, True, "Move", "Move r/m8 to r8." ],
[ "MOV", "REX+ 8A /r", "r8,r/m8", "RM", True, False, "Move", "Move r/m8 to r8." ],
[ "MOV", "8B /r", "r16,r/m16", "RM", True, True, "Move", "Move r/m16 to r16." ],
[ "MOV", "8B /r", "r32,r/m32", "RM", True, True, "Move", "Move r/m32 to r32." ],
[ "MOV", "REX.W+ 8B /r", "r64,r/m64", "RM", True, False, "Move", "Move r/m64 to r64." ],
[ "MOV", "8C /r", "r/m16,Sreg", "MR", True, True, "Move", "Move segment register to r/m16." ],
[ "MOV", "REX.W+ 8C /r", "r/m64,Sreg", "MR", True, True, "Move", "Move zero extended 16-bit segment register to r/m64." ],
[ "MOV", "8E /r", "Sreg,r/m16", "RM", True, True, "Move", "Move r/m16 to segment register." ],
[ "MOV", "REX.W+ 8E /r", "Sreg,r/m64", "RM", True, True, "Move", "Move lower 16 bits of r/m64 to segment register." ],
[ "MOV", "A0", "AL, moffs8", "FD", True, True, "Move", "Move byte at ( seg:offset ) to AL." ],
[ "MOV", "REX.W+ A0", "AL, moffs8", "FD", True, False, "Move", "Move byte at ( offset ) to AL." ],
[ "MOV", "A1", "AX, moffs16", "FD", True, True, "Move", "Move word at ( seg:offset ) to AX." ],
[ "MOV", "A1", "EAX, moffs32", "FD", True, True, "Move", "Move doubleword at ( seg:offset ) to EAX." ],
[ "MOV", "REX.W+ A1", "RAX, moffs64", "FD", True, False, "Move", "Move quadword at ( offset ) to RAX." ],
[ "MOV", "A2", "moffs8, AL", "TD", True, True, "Move", "Move AL to ( seg:offset )." ],
[ "MOV", "REX.W+ A2", "moffs8, AL", "TD", True, False, "Move", "Move AL to ( offset )." ],
[ "MOV", "A3", "moffs16,AX", "TD", True, True, "Move", "Move AX to ( seg:offset )." ],
[ "MOV", "A3", "moffs32,EAX", "TD", True, True, "Move", "Move EAX to ( seg:offset )." ],
[ "MOV", "REX.W+ A3", "moffs64,RAX", "TD", True, False, "Move", "Move RAX to ( offset )." ],
[ "MOV", "B0+ rb ib", "r8, imm8", "OI", True, True, "Move", "Move imm8 to r8." ],
[ "MOV", "REX+ B0+ rb ib", "r8, imm8", "OI", True, False, "Move", "Move imm8 to r8." ],
[ "MOV", "B8+ rw iw", "r16, imm16", "OI", True, True, "Move", "Move imm16 to r16." ],
[ "MOV", "B8+ rd id", "r32, imm32", "OI", True, True, "Move", "Move imm32 to r32." ],
[ "MOV", "REX.W+ B8+ rd io", "r64, imm64", "OI", True, False, "Move", "Move imm64 to r64." ],
[ "MOV", "C6 /0 ib", "r/m8, imm8", "MI", True, True, "Move", "Move imm8 to r/m8." ],
[ "MOV", "REX+ C6 /0 ib", "r/m8, imm8", "MI", True, False, "Move", "Move imm8 to r/m8." ],
[ "MOV", "C7 /0 iw", "r/m16, imm16", "MI", True, True, "Move", "Move imm16 to r/m16." ],
[ "MOV", "C7 /0 id", "r/m32, imm32", "MI", True, True, "Move", "Move imm32 to r/m32." ],
[ "MOV", "REX.W+ C7 /0 io", "r/m64, imm32", "MI", True, False, "Move", "Move imm32 sign extended to 64-bits to r/m64." ],
[ "MOVBE", "0F 38 F0 /r", "r16, m16", "RM", True, True, "Move Data After Swapping Bytes", "Reverse byte order in m16 and move to r16." ],
[ "MOVBE", "0F 38 F0 /r", "r32, m32", "RM", True, True, "Move Data After Swapping Bytes", "Reverse byte order in m32 and move to r32." ],
[ "MOVBE", "REX.W+ 0F 38 F0 /r", "r64, m64", "RM", True, False, "Move Data After Swapping Bytes", "Reverse byte order in m64 and move to r64." ],
[ "MOVBE", "0F 38 F1 /r", "m16, r16", "MR", True, True, "Move Data After Swapping Bytes", "Reverse byte order in r16 and move to m16." ],
[ "MOVBE", "0F 38 F1 /r", "m32, r32", "MR", True, True, "Move Data After Swapping Bytes", "Reverse byte order in r32 and move to m32." ],
[ "MOVBE", "REX.W+ 0F 38 F1 /r", "m64, r64", "MR", True, False, "Move Data After Swapping Bytes", "Reverse byte order in r64 and move to m64." ],
[ "MOVNTI", "0F C3 /r", "m32, r32", "MR", True, True, "Store Doubleword Using Non-Temporal Hint", "Move doubleword from r32 to m32 using non-temporal hint." ],
[ "MOVNTI", "REX.W+ 0F C3 /r", "m64, r64", "MR", True, False, "Store Doubleword Using Non-Temporal Hint", "Move quadword from r64 to m64 using non-temporal hint." ],
[ "MOVNTQ", "0F E7 /r", "m64, mm", "MR", True, True, "Store of Quadword Using Non-Temporal Hint", "Move quadword from mm to m64 using non-temporal hint." ],
[ "MOVSX", "0F BE /r", "r16, r/m8", "RM", True, True, "Move with Sign-Extension", "Move byte to word with sign-extension." ],
[ "MOVSX", "0F BE /r", "r32, r/m8", "RM", True, True, "Move with Sign-Extension", "Move byte to doubleword with sign-extension." ],
[ "MOVSX", "REX+ 0F BE /r", "r64, r/m8", "RM", True, False, "Move with Sign-Extension", "Move byte to quadword with sign-extension." ],
[ "MOVSX", "0F BF /r", "r32, r/m16", "RM", True, True, "Move with Sign-Extension", "Move word to doubleword, with sign-extension." ],
[ "MOVSX", "REX.W+ 0F BF /r", "r64, r/m16", "RM", True, False, "Move with Sign-Extension", "Move word to quadword with sign-extension." ],
[ "MOVSXD", "REX.W+ 63 /r", "r64, r/m32", "RM", True, False, "Move with Sign-Extension", "Move doubleword to quadword with sign-extension." ],
[ "MOVS", "A4", "m8, m8", "", True, True, "Move Data from String to String", "For legacy mode, Move byte from address DS:(E)SI to ES:(E)DI. For 64-bit mode move byte from address (R|E)SI to (R|E)DI." ],
[ "MOVS", "A5", "m16, m16", "", True, True, "Move Data from String to String", "For legacy mode, move word from address DS:(E)SI to ES:(E)DI. For 64-bit mode move word at address (R|E)SI to (R|E)DI." ],
[ "MOVS", "A5", "m32, m32", "", True, True, "Move Data from String to String", "For legacy mode, move dword from address DS:(E)SI to ES:(E)DI. For 64-bit mode move dword from address (R|E)SI to (R|E)DI." ],
[ "MOVS", "REX.W+ A5", "m64, m64", "", True, False, "Move Data from String to String", "Move qword from address (R|E)SI to (R|E)DI." ],
[ "MOVSB", "A4", "", "", True, True, "Move Data from String to String", "For legacy mode, Move byte from address DS:(E)SI to ES:(E)DI. For 64-bit mode move byte from address (R|E)SI to (R|E)DI." ],
[ "MOVSW", "A5", "", "", True, True, "Move Data from String to String", "For legacy mode, move word from address DS:(E)SI to ES:(E)DI. For 64-bit mode move word at address (R|E)SI to (R|E)DI." ],
[ "MOVSD", "A5", "", "", True, True, "Move Data from String to String", "For legacy mode, move dword from address DS:(E)SI to ES:(E)DI. For 64-bit mode move dword from address (R|E)SI to (R|E)DI." ],
[ "MOVSQ", "REX.W+ A5", "", "", True, False, "Move Data from String to String", "Move qword from address (R|E)SI to (R|E)DI." ],
[ "MOVZX", "0F B6 /r", "r16, r/m8", "RM", True, True, "Move with Zero-Extend", "Move byte to word with zero-extension." ],
[ "MOVZX", "0F B6 /r", "r32, r/m8", "RM", True, True, "Move with Zero-Extend", "Move byte to doubleword, zero-extension." ],
[ "MOVZX", "REX.W+ 0F B6 /r", "r64, r/m8", "RM", True, False, "Move with Zero-Extend", "Move byte to quadword, zero-extension." ],
[ "MOVZX", "0F B7 /r", "r32, r/m16", "RM", True, True, "Move with Zero-Extend", "Move word to doubleword, zero-extension." ],
[ "MOVZX", "REX.W+ 0F B7 /r", "r64, r/m16", "RM", True, False, "Move with Zero-Extend", "Move word to quadword, zero-extension." ],
[ "MUL", "F6 /4", "r/m8", "M", True, True, "Unsigned Multiply", "Unsigned multiply (AX <- AL ∗ r/m8 )." ],
[ "MUL", "REX+ F6 /4", "r/m8", "M", True, False, "Unsigned Multiply", "Unsigned multiply (AX <- AL ∗ r/m8 )." ],
[ "MUL", "F7 /4", "r/m16", "M", True, True, "Unsigned Multiply", "Unsigned multiply (DX:AX <- AX ∗ r/m16 )." ],
[ "MUL", "F7 /4", "r/m32", "M", True, True, "Unsigned Multiply", "Unsigned multiply (EDX:EAX <- EAX ∗ r/m32 )." ],
[ "MUL", "REX.W+ F7 /4", "r/m64", "M", True, False, "Unsigned Multiply", "Unsigned multiply (RDX:RAX <- RAX ∗ r/m64)." ],
[ "MWAIT", "0F 01 C9", "", "", True, True, "Monitor Wait", "A hint that allow the processor to stop instruction execution and enter an implementation-dependent optimized state until occurrence of a class of events." ],
[ "NEG", "F6 /3", "r/m8", "M", True, True, "Two's Complement Negation", "Two's complement negate r/m8." ],
[ "NEG", "REX+ F6 /3", "r/m8", "M", True, False, "Two's Complement Negation", "Two's complement negate r/m8." ],
[ "NEG", "F7 /3", "r/m16", "M", True, True, "Two's Complement Negation", "Two's complement negate r/m16." ],
[ "NEG", "F7 /3", "r/m32", "M", True, True, "Two's Complement Negation", "Two's complement negate r/m32." ],
[ "NEG", "REX.W+ F7 /3", "r/m64", "M", True, False, "Two's Complement Negation", "Two's complement negate r/m64." ],
[ "NOP", "90", "", "", True, True, "No Operation", "One byte no-operation instruction." ],
[ "NOP", "0F 1F /0", "r/m16", "M", True, True, "No Operation", "Multi-byte no-operation instruction." ],
[ "NOP", "0F 1F /0", "r/m32", "M", True, True, "No Operation", "Multi-byte no-operation instruction." ],
[ "NOT", "F6 /2", "r/m8", "M", True, True, "One's Complement Negation", "Reverse each bit of r/m8." ],
[ "NOT", "REX+ F6 /2", "r/m8", "M", True, False, "One's Complement Negation", "Reverse each bit of r/m8." ],
[ "NOT", "F7 /2", "r/m16", "M", True, True, "One's Complement Negation", "Reverse each bit of r/m16." ],
[ "NOT", "F7 /2", "r/m32", "M", True, True, "One's Complement Negation", "Reverse each bit of r/m32." ],
[ "NOT", "REX.W+ F7 /2", "r/m64", "M", True, False, "One's Complement Negation", "Reverse each bit of r/m64." ],
[ "OR", "0C ib", "AL, imm8", "FI", True, True, "Logical Inclusive OR", "AL OR imm8." ],
[ "OR", "0D iw", "AX, imm16", "FI", True, True, "Logical Inclusive OR", "AX OR imm16." ],
[ "OR", "0D id", "EAX, imm32", "FI", True, True, "Logical Inclusive OR", "EAX OR imm32." ],
[ "OR", "REX.W+ 0D id", "RAX, imm32", "FI", True, False, "Logical Inclusive OR", "RAX OR imm32 (sign-extended)." ],
[ "OR", "80 /1 ib", "r/m8, imm8", "MI", True, True, "Logical Inclusive OR", "r/m8 OR imm8." ],
[ "OR", "REX+ 80 /1 ib", "r/m8, imm8", "MI", True, False, "Logical Inclusive OR", "r/m8 OR imm8." ],
[ "OR", "81 /1 iw", "r/m16, imm16", "MI", True, True, "Logical Inclusive OR", "r/m16 OR imm16." ],
[ "OR", "81 /1 id", "r/m32, imm32", "MI", True, True, "Logical Inclusive OR", "r/m32 OR imm32." ],
[ "OR", "REX.W+ 81 /1 id", "r/m64, imm32", "MI", True, False, "Logical Inclusive OR", "r/m64 OR imm32 (sign-extended)." ],
[ "OR", "83 /1 ib", "r/m16, imm8", "MI", True, True, "Logical Inclusive OR", "r/m16 OR imm8 (sign-extended)." ],
[ "OR", "83 /1 ib", "r/m32, imm8", "MI", True, True, "Logical Inclusive OR", "r/m32 OR imm8 (sign-extended)." ],
[ "OR", "REX.W+ 83 /1 ib", "r/m64, imm8", "MI", True, False, "Logical Inclusive OR", "r/m64 OR imm8 (sign-extended)." ],
[ "OR", "08 /r", "r/m8, r8", "MR", True, True, "Logical Inclusive OR", "r/m8 OR r8." ],
[ "OR", "REX+ 08 /r", "r/m8, r8", "MR", True, False, "Logical Inclusive OR", "r/m8 OR r8." ],
[ "OR", "09 /r", "r/m16, r16", "MR", True, True, "Logical Inclusive OR", "r/m16 OR r16." ],
[ "OR", "09 /r", "r/m32, r32", "MR", True, True, "Logical Inclusive OR", "r/m32 OR r32." ],
[ "OR", "REX.W+ 09 /r", "r/m64, r64", "MR", True, False, "Logical Inclusive OR", "r/m64 OR r64." ],
[ "OR", "0A /r", "r8, r/m8", "RM", True, True, "Logical Inclusive OR", "r8 OR r/m8." ],
[ "OR", "REX+ 0A /r", "r8, r/m8", "RM", True, False, "Logical Inclusive OR", "r8 OR r/m8." ],
[ "OR", "0B /r", "r16, r/m16", "RM", True, True, "Logical Inclusive OR", "r16 OR r/m16." ],
[ "OR", "0B /r", "r32, r/m32", "RM", True, True, "Logical Inclusive OR", "r32 OR r/m32." ],
[ "OR", "REX.W+ 0B /r", "r64, r/m64", "RM", True, False, "Logical Inclusive OR", "r64 OR r/m64." ],
[ "PAUSE", "F3 90", "", "", True, True, "Spin Loop Hint", "Gives hint to processor that improves performance of spin-wait loops." ],
[ "POP", "8F /0", "r/m16", "M", True, True, "Pop a Value from the Stack", "Pop top of stack into m16; increment stack pointer." ],
[ "POP", "8F /0", "r/m32", "M", False, True, "Pop a Value from the Stack", "Pop top of stack into m32; increment stack pointer." ],
[ "POP", "8F /0", "r/m64", "M", True, False, "Pop a Value from the Stack", "Pop top of stack into m64; increment stack pointer. Cannot encode 32-bit operand size." ],
[ "POP", "58+ rw", "r16", "O", True, True, "Pop a Value from the Stack", "Pop top of stack into r16; increment stack pointer." ],
[ "POP", "58+ rd", "r32", "O", False, True, "Pop a Value from the Stack", "Pop top of stack into r32; increment stack pointer." ],
[ "POP", "58+ rd", "r64", "O", True, False, "Pop a Value from the Stack", "Pop top of stack into r64; increment stack pointer. Cannot encode 32-bit operand size." ],
[ "POP", "1F", "DS", "F", False, True, "Pop a Value from the Stack", "Pop top of stack into DS; increment stack pointer." ],
[ "POP", "07", "ES", "F", False, True, "Pop a Value from the Stack", "Pop top of stack into ES; increment stack pointer." ],
[ "POP", "17", "SS", "F", False, True, "Pop a Value from the Stack", "Pop top of stack into SS; increment stack pointer." ],
[ "POP", "0F A1", "FS", "F", True, True, "Pop a Value from the Stack", "Pop top of stack into FS; increment stack pointer by 16 bits." ],
[ "POP", "0F A1", "FS", "F", False, True, "Pop a Value from the Stack", "Pop top of stack into FS; increment stack pointer by 32 bits." ],
[ "POP", "0F A1", "FS", "F", True, False, "Pop a Value from the Stack", "Pop top of stack into FS; increment stack pointer by 64 bits." ],
[ "POP", "0F A9", "GS", "F", True, True, "Pop a Value from the Stack", "Pop top of stack into GS; increment stack pointer by 16 bits." ],
[ "POP", "0F A9", "GS", "F", False, True, "Pop a Value from the Stack", "Pop top of stack into GS; increment stack pointer by 32 bits." ],
[ "POP", "0F A9", "GS", "F", True, False, "Pop a Value from the Stack", "Pop top of stack into GS; increment stack pointer by 64 bits." ],
[ "POPA", "61", "", "", False, True, "Pop All General-Purpose Registers", "Pop DI, SI, BP, BX, DX, CX, and AX." ],
[ "POPAD", "61", "", "", False, True, "Pop All General-Purpose Registers", "Pop EDI, ESI, EBP, EBX, EDX, ECX, and EAX." ],
[ "POPCNT", "F3 0F B8 /r", "r16, r/m16", "RM", True, True, "Return the Count of Number of Bits Set to 1", "POPCNT on r/m16" ],
[ "POPCNT", "F3 0F B8 /r", "r32, r/m32", "RM", True, True, "Return the Count of Number of Bits Set to 1", "POPCNT on r/m32" ],
[ "POPCNT", "F3 REX.W 0F B8 /r", "r64, r/m64", "RM", True, False, "Return the Count of Number of Bits Set to 1", "POPCNT on r/m64" ],
[ "POPF", "9D", "", "", True, True, "Pop Stack into EFLAGS Register", "Pop top of stack into lower 16 bits of EFLAGS." ],
[ "POPFD", "9D", "", "", False, True, "Pop Stack into EFLAGS Register", "Pop top of stack into EFLAGS." ],
[ "POPFQ", "9D", "", "", True, False, "Pop Stack into EFLAGS Register", "Pop top of stack and zero-extend into RFLAGS." ],
[ "PREFETCHT0", "0F 18 /1", "m8", "M", True, True, "Prefetch Data Into Caches", "Move data from m8 closer to the processor using T0 hint." ],
[ "PREFETCHT1", "0F 18 /2", "m8", "M", True, True, "Prefetch Data Into Caches", "Move data from m8 closer to the processor using T1 hint." ],
[ "PREFETCHT2", "0F 18 /3", "m8", "M", True, True, "Prefetch Data Into Caches", "Move data from m8 closer to the processor using T2 hint." ],
[ "PREFETCHNTA", "0F 18 /0", "m8", "M", True, True, "Prefetch Data Into Caches", "Move data from m8 closer to the processor using NTA hint." ],
[ "PUSHA", "60", "", "", False, True, "Push All General-Purpose Registers", "Push AX, CX, DX, BX, original SP, BP, SI, and DI." ],
[ "PUSHAD", "60", "", "", False, True, "Push All General-Purpose Registers", "Push EAX, ECX, EDX, EBX, original ESP, EBP, ESI, and EDI." ],
[ "SHL", "REX.W+ D1 /4", "r/m64, 1", "M1", True, False, "Shift", "Multiply r/m64 by 2, once." ],
[ "SHL", "D3 /4", "r/m32, CL", "MC", True, True, "Shift", "Multiply r/m32 by 2, CL times." ],
[ "SHL", "REX.W+ D3 /4", "r/m64, CL", "MC", True, False, "Shift", "Multiply r/m64 by 2, CL times." ],
[ "SHL", "C1 /4 ib", "r/m32, imm8", "MI", True, True, "Shift", "Multiply r/m32 by 2, imm8 times." ],
[ "SHL", "REX.W+ C1 /4 ib", "r/m64, imm8", "MI", True, False, "Shift", "Multiply r/m64 by 2, imm8 times." ],
[ "SHR", "D0 /5", "r/m8, 1", "M1", True, True, "Shift", "Unsigned divide r/m8 by 2, once." ],
[ "SHR", "REX+ D0 /5", "r/m8, 1", "M1", True, False, "Shift", "Unsigned divide r/m8 by 2, once." ],
[ "SHR", "D2 /5", "r/m8, CL", "MC", True, True, "Shift", "Unsigned divide r/m8 by 2, CL times." ],
[ "SHR", "REX+ D2 /5", "r/m8, CL", "MC", True, False, "Shift", "Unsigned divide r/m8 by 2, CL times." ],
[ "SHR", "C0 /5 ib", "r/m8, imm8", "MI", True, True, "Shift", "Unsigned divide r/m8 by 2, imm8 times." ],
[ "SHR", "REX+ C0 /5 ib", "r/m8, imm8", "MI", True, False, "Shift", "Unsigned divide r/m8 by 2, imm8 times." ],
[ "SHR", "D1 /5", "r/m16, 1", "M1", True, True, "Shift", "Unsigned divide r/m16 by 2, once." ],
[ "SHR", "D3 /5", "r/m16, CL", "MC", True, True, "Shift", "Unsigned divide r/m16 by 2, CL times" ],
[ "SHR", "C1 /5 ib", "r/m16, imm8", "MI", True, True, "Shift", "Unsigned divide r/m16 by 2, imm8 times." ],
[ "SHR", "D1 /5", "r/m32, 1", "M1", True, True, "Shift", "Unsigned divide r/m32 by 2, once." ],
[ "SHR", "REX.W+ D1 /5", "r/m64, 1", "M1", True, False, "Shift", "Unsigned divide r/m64 by 2, once." ],
[ "SHR", "D3 /5", "r/m32, CL", "MC", True, True, "Shift", "Unsigned divide r/m32 by 2, CL times." ],
[ "SHR", "REX.W+ D3 /5", "r/m64, CL", "MC", True, False, "Shift", "Unsigned divide r/m64 by 2, CL times." ],
[ "SHR", "C1 /5 ib", "r/m32, imm8", "MI", True, True, "Shift", "Unsigned divide r/m32 by 2, imm8 times." ],
[ "SHR", "REX.W+ C1 /5 ib", "r/m64, imm8", "MI", True, False, "Shift", "Unsigned divide r/m64 by 2, imm8 times." ],
[ "SBB", "1C ib", "AL, imm8", "FI", True, True, "Integer Subtraction with Borrow", "Subtract with borrow imm8 from AL." ],
[ "SBB", "1D iw", "AX, imm16", "FI", True, True, "Integer Subtraction with Borrow", "Subtract with borrow imm16 from AX." ],
[ "SBB", "1D id", "EAX, imm32", "FI", True, True, "Integer Subtraction with Borrow", "Subtract with borrow imm32 from EAX." ],
[ "SBB", "REX.W+ 1D id", "RAX, imm32", "FI", True, False, "Integer Subtraction with Borrow", "Subtract with borrow sign-extended imm.32 to 64-bits from RAX." ],
[ "SBB", "80 /3 ib", "r/m8, imm8", "MI", True, True, "Integer Subtraction with Borrow", "Subtract with borrow imm8 from r/m8." ],
[ "SBB", "REX+ 80 /3 ib", "r/m8, imm8", "MI", True, False, "Integer Subtraction with Borrow", "Subtract with borrow imm8 from r/m8." ],
[ "SBB", "81 /3 iw", "r/m16, imm16", "MI", True, True, "Integer Subtraction with Borrow", "Subtract with borrow imm16 from r/m16." ],
[ "SBB", "81 /3 id", "r/m32, imm32", "MI", True, True, "Integer Subtraction with Borrow", "Subtract with borrow imm32 from r/m32." ],
[ "SBB", "REX.W+ 81 /3 id", "r/m64, imm32", "MI", True, False, "Integer Subtraction with Borrow", "Subtract with borrow sign-extended imm32 to 64-bits from r/m64." ],
[ "SBB", "83 /3 ib", "r/m16, imm8", "MI", True, True, "Integer Subtraction with Borrow", "Subtract with borrow sign-extended imm8 from r/m16." ],
[ "SBB", "83 /3 ib", "r/m32, imm8", "MI", True, True, "Integer Subtraction with Borrow", "Subtract with borrow sign-extended imm8 from r/m32." ],
[ "SBB", "REX.W+ 83 /3 ib", "r/m64, imm8", "MI", True, False, "Integer Subtraction with Borrow", "Subtract with borrow sign-extended imm8 from r/m64." ],
[ "SBB", "18 /r", "r/m8, r8", "MR", True, True, "Integer Subtraction with Borrow", "Subtract with borrow r8 from r/m8." ],
[ "SBB", "REX+ 18 /r", "r/m8, r8", "MR", True, False, "Integer Subtraction with Borrow", "Subtract with borrow r8 from r/m8." ],
[ "SBB", "19 /r", "r/m16, r16", "MR", True, True, "Integer Subtraction with Borrow", "Subtract with borrow r16 from r/m16." ],
[ "SBB", "19 /r", "r/m32, r32", "MR", True, True, "Integer Subtraction with Borrow", "Subtract with borrow r32 from r/m32." ],
[ "SBB", "REX.W+ 19 /r", "r/m64, r64", "MR", True, False, "Integer Subtraction with Borrow", "Subtract with borrow r64 from r/m64." ],
[ "SBB", "1A /r", "r8, r/m8", "RM", True, True, "Integer Subtraction with Borrow", "Subtract with borrow r/m8 from r8." ],
[ "SBB", "REX+ 1A /r", "r8, r/m8", "RM", True, False, "Integer Subtraction with Borrow", "Subtract with borrow r/m8 from r8." ],
[ "SBB", "1B /r", "r16, r/m16", "RM", True, True, "Integer Subtraction with Borrow", "Subtract with borrow r/m16 from r16." ],
[ "SBB", "1B /r", "r32, r/m32", "RM", True, True, "Integer Subtraction with Borrow", "Subtract with borrow r/m32 from r32." ],
[ "SBB", "REX.W+ 1B /r", "r64, r/m64", "RM", True, False, "Integer Subtraction with Borrow", "Subtract with borrow r/m64 from r64." ],
[ "SCAS", "AE", "m8", "", True, True, "Scan String", "Compare AL with byte at ES:(E)DI or RDI, then set status flags.*" ],
[ "SCAS", "AF", "m16", "", True, True, "Scan String", "Compare AX with word at ES:(E)DI or RDI, then set status flags.*" ],
[ "SCAS", "AF", "m32", "", True, True, "Scan String", "Compare EAX with doubleword at ES(E)DI or RDI then set status flags.*" ],
[ "SCAS", "REX.W+ AF", "m64", "", True, False, "Scan String", "Compare RAX with quadword at RDI or EDI then set status flags." ],
[ "SCASB", "AE", "", "", True, True, "Scan String", "Compare AL with byte at ES:(E)DI or RDI then set status flags.*" ],
[ "SCASW", "AF", "", "", True, True, "Scan String", "Compare AX with word at ES:(E)DI or RDI then set status flags.*" ],
[ "SCASD", "AF", "", "", True, True, "Scan String", "Compare EAX with doubleword at ES:(E)DI or RDI then set status flags.*" ],
[ "SCASQ", "REX.W+ AF", "", "", True, False, "Scan String", "Compare RAX with quadword at RDI or EDI then set status flags." ],
[ "SETA", "0F 97", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if above (CF=0 and ZF=0)." ],
[ "SETA", "REX+ 0F 97", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if above (CF=0 and ZF=0)." ],
[ "SETAE", "0F 93", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if above or equal (CF=0)." ],
[ "SETAE", "REX+ 0F 93", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if above or equal (CF=0)." ],
[ "SETB", "0F 92", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if below (CF=1)." ],
[ "SETB", "REX+ 0F 92", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if below (CF=1)." ],
[ "SETBE", "0F 96", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if below or equal (CF=1 or ZF=1)." ],
[ "SETBE", "REX+ 0F 96", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if below or equal (CF=1 or ZF=1)." ],
[ "SETC", "0F 92", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if carry (CF=1)." ],
[ "SETC", "REX+ 0F 92", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if carry (CF=1)." ],
[ "SETE", "0F 94", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if equal (ZF=1)." ],
[ "SETE", "REX+ 0F 94", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if equal (ZF=1)." ],
[ "SETG", "0F 9F", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if greater (ZF=0 and SF=OF)." ],
[ "SETG", "REX+ 0F 9F", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if greater (ZF=0 and SF=OF)." ],
[ "SETGE", "0F 9D", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if greater or equal (SF=OF)." ],
[ "SETGE", "REX+ 0F 9D", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if greater or equal (SF=OF)." ],
[ "SETL", "0F 9C", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if less (SF<>OF)." ],
[ "SETL", "REX+ 0F 9C", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if less (SF<>OF)." ],
[ "SETLE", "0F 9E", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if less or equal (ZF=1 or SF<>OF)." ],
[ "SETLE", "REX+ 0F 9E", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if less or equal (ZF=1 or SF<>OF)." ],
[ "SETNA", "0F 96", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not above (CF=1 or ZF=1)." ],
[ "SETNA", "REX+ 0F 96", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not above (CF=1 or ZF=1)." ],
[ "SETNAE", "0F 92", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not above or equal (CF=1)." ],
[ "SETNAE", "REX+ 0F 92", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not above or equal (CF=1)." ],
[ "SETNB", "0F 93", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not below (CF=0)." ],
[ "SETNB", "REX+ 0F 93", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not below (CF=0)." ],
[ "SETNBE", "0F 97", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not below or equal (CF=0 and ZF=0)." ],
[ "SETNBE", "REX+ 0F 97", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not below or equal (CF=0 and ZF=0)." ],
[ "SETNC", "0F 93", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not carry (CF=0)." ],
[ "SETNC", "REX+ 0F 93", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not carry (CF=0)." ],
[ "SETNE", "0F 95", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not equal (ZF=0)." ],
[ "SETNE", "REX+ 0F 95", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not equal (ZF=0)." ],
[ "SETNG", "0F 9E", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not greater (ZF=1 or SF<>OF)" ],
[ "SETNG", "REX+ 0F 9E", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not greater (ZF=1 or SF<>OF)." ],
[ "SETNGE", "0F 9C", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not greater or equal (SF<>OF)." ],
[ "SETNGE", "REX+ 0F 9C", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not greater or equal (SF<>OF)." ],
[ "SETNL", "0F 9D", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not less (SF=OF)." ],
[ "SETNL", "REX+ 0F 9D", "r/m8", "M", True, False, "Set Byte on Condition", "Set byte if not less (SF=OF)." ],
[ "SETNLE", "0F 9F", "r/m8", "M", True, True, "Set Byte on Condition", "Set byte if not less or equal (ZF=0 and SF=OF)." ],
[ "STAC", "0F 01 CB", "", "", True, True, "Set AC Flag in EFLAGS Register", "Set the AC flag in the EFLAGS register." ],
[ "STC", "F9", "", "", True, True, "Set Carry Flag", "Set CF flag." ],
[ "STD", "FD", "", "", True, True, "Set Direction Flag", "Set DF flag." ],
[ "STI", "FB", "", "", True, True, "Set Interrupt Flag", "Set interrupt flag; external, maskable interrupts enabled at the end of the next instruction." ],
[ "STOS", "AA", "m8", "", True, True, "Store String", "For legacy mode, store AL at address ES:(E)DI; For 64-bit mode store AL at address RDI or EDI." ],
[ "STOS", "AB", "m16", "", True, True, "Store String", "For legacy mode, store AX at address ES:(E)DI; For 64-bit mode store AX at address RDI or EDI." ],
[ "STOS", "AB", "m32", "", True, True, "Store String", "For legacy mode, store EAX at address ES:(E)DI; For 64-bit mode store EAX at address RDI or EDI." ],
[ "STOS", "REX.W+ AB", "m64", "", True, False, "Store String", "Store RAX at address RDI or EDI." ],
[ "STOSB", "AA", "", "", True, True, "Store String", "For legacy mode, store AL at address ES:(E)DI; For 64-bit mode store AL at address RDI or EDI." ],
[ "STOSW", "AB", "", "", True, True, "Store String", "For legacy mode, store AX at address ES:(E)DI; For 64-bit mode store AX at address RDI or EDI." ],
[ "STOSD", "AB", "", "", True, True, "Store String", "For legacy mode, store EAX at address ES:(E)DI; For 64-bit mode store EAX at address RDI or EDI." ],
[ "STOSQ", "REX.W+ AB", "", "", True, False, "Store String", "Store RAX at address RDI or EDI." ],
[ "STR", "0F 00 /1", "r/m16", "M", True, True, "Store Task Register", "Stores segment selector from TR in r/m16." ],
[ "SUB", "2C ib", "AL, imm8", "FI", True, True, "Subtract", "Subtract imm8 from AL." ],
[ "SUB", "2D iw", "AX, imm16", "FI", True, True, "Subtract", "Subtract imm16 from AX." ],
[ "SUB", "2D id", "EAX, imm32", "FI", True, True, "Subtract", "Subtract imm32 from EAX." ],
[ "SUB", "REX.W+ 2D id", "RAX, imm32", "FI", True, False, "Subtract", "Subtract imm32 sign-extended to 64-bits from RAX." ],
[ "SUB", "80 /5 ib", "r/m8, imm8", "MI", True, True, "Subtract", "Subtract imm8 from r/m8." ],
[ "SUB", "REX+ 80 /5 ib", "r/m8, imm8", "MI", True, False, "Subtract", "Subtract imm8 from r/m8." ],
[ "SUB", "81 /5 iw", "r/m16, imm16", "MI", True, True, "Subtract", "Subtract imm16 from r/m16." ],
[ "SUB", "81 /5 id", "r/m32, imm32", "MI", True, True, "Subtract", "Subtract imm32 from r/m32." ],
[ "SUB", "REX.W+ 81 /5 id", "r/m64, imm32", "MI", True, False, "Subtract", "Subtract imm32 sign-extended to 64-bits from r/m64." ],
[ "SUB", "83 /5 ib", "r/m16, imm8", "MI", True, True, "Subtract", "Subtract sign-extended imm8 from r/m16." ],
[ "SUB", "83 /5 ib", "r/m32, imm8", "MI", True, True, "Subtract", "Subtract sign-extended imm8 from r/m32." ],
[ "SUB", "REX.W+ 83 /5 ib", "r/m64, imm8", "MI", True, False, "Subtract", "Subtract sign-extended imm8 from r/m64." ],
[ "SUB", "28 /r", "r/m8, r8", "MR", True, True, "Subtract", "Subtract r8 from r/m8." ],
[ "SUB", "REX+ 28 /r", "r/m8, r8", "MR", True, False, "Subtract", "Subtract r8 from r/m8." ],
[ "SUB", "29 /r", "r/m16, r16", "MR", True, True, "Subtract", "Subtract r16 from r/m16." ],
[ "SUB", "29 /r", "r/m32, r32", "MR", True, True, "Subtract", "Subtract r32 from r/m32." ],
[ "SUB", "REX.W+ 29 /r", "r/m64, r64", "MR", True, False, "Subtract", "Subtract r64 from r/m64." ],
[ "SUB", "2A /r", "r8, r/m8", "RM", True, True, "Subtract", "Subtract r/m8 from r8." ],
[ "SUB", "REX+ 2A /r", "r8, r/m8", "RM", True, False, "Subtract", "Subtract r/m8 from r8." ],
[ "SUB", "2B /r", "r16, r/m16", "RM", True, True, "Subtract", "Subtract r/m16 from r16." ],
[ "SUB", "2B /r", "r32, r/m32", "RM", True, True, "Subtract", "Subtract r/m32 from r32." ],
[ "SUB", "REX.W+ 2B /r", "r64, r/m64", "RM", True, False, "Subtract", "Subtract r/m64 from r64." ],
[ "SWAPGS", "0F 01 F8", "", "", True, False, "Swap GS Base Register", "Exchanges the current GS base register value with the value contained in MSR address C0000102H." ],
[ "SYSCALL", "0F 05", "", "", True, False, "Fast System Call", "Fast call to privilege level 0 system procedures." ],
[ "SYSENTER", "0F 34", "", "", True, True, "Fast System Call", "Fast call to privilege level 0 system procedures." ],
[ "SYSEXIT", "0F 35", "", "", True, True, "Fast Return from Fast System Call", "Fast return to privilege level 3 user code." ],
[ "SYSEXIT", "REX.W+ 0F 35", "", "", True, True, "Fast Return from Fast System Call", "Fast return to 64-bit mode privilege level 3 user code." ],
[ "SYSRET", "0F 07", "", "", True, False, "Return From Fast System Call", "Return to compatibility mode from fast system call" ],
[ "SYSRET", "REX.W+ 0F 07", "", "", True, False, "Return From Fast System Call", "Return to 64-bit mode from fast system call" ],
[ "TEST", "A8 ib", "AL, imm8", "FI", True, True, "Logical Compare", "AND imm8 with AL; set SF, ZF, PF according to result." ],
[ "TEST", "A9 iw", "AX, imm16", "FI", True, True, "Logical Compare", "AND imm16 with AX; set SF, ZF, PF according to result." ],
[ "TEST", "A9 id", "EAX, imm32", "FI", True, True, "Logical Compare", "AND imm32 with EAX; set SF, ZF, PF according to result." ],
[ "TEST", "REX.W+ A9 id", "RAX, imm32", "FI", True, False, "Logical Compare", "AND imm32 sign-extended to 64-bits with RAX; set SF, ZF, PF according to result." ],
[ "TEST", "F6 /0 ib", "r/m8, imm8", "MI", True, True, "Logical Compare", "AND imm8 with r/m8; set SF, ZF, PF according to result." ],
[ "TEST", "REX+ F6 /0 ib", "r/m8, imm8", "MI", True, False, "Logical Compare", "AND imm8 with r/m8; set SF, ZF, PF according to result." ],
[ "TEST", "F7 /0 iw", "r/m16, imm16", "MI", True, True, "Logical Compare", "AND imm16 with r/m16; set SF, ZF, PF according to result." ],
[ "TEST", "F7 /0 id", "r/m32, imm32", "MI", True, True, "Logical Compare", "AND imm32 with r/m32; set SF, ZF, PF according to result." ],
[ "TEST", "REX.W+ F7 /0 id", "r/m64, imm32", "MI", True, False, "Logical Compare", "AND imm32 sign-extended to 64-bits with r/m64; set SF, ZF, PF according to result." ],
[ "TEST", "84 /r", "r/m8, r8", "MR", True, True, "Logical Compare", "AND r8 with r/m8; set SF, ZF, PF according to result." ],
[ "TEST", "REX+ 84 /r", "r/m8, r8", "MR", True, False, "Logical Compare", "AND r8 with r/m8; set SF, ZF, PF according to result." ],
[ "TEST", "85 /r", "r/m16, r16", "MR", True, True, "Logical Compare", "AND r16 with r/m16; set SF, ZF, PF according to result." ],
[ "TEST", "85 /r", "r/m32, r32", "MR", True, True, "Logical Compare", "AND r32 with r/m32; set SF, ZF, PF according to result." ],
[ "TEST", "REX.W+ 85 /r", "r/m64, r64", "MR", True, False, "Logical Compare", "AND r64 with r/m64; set SF, ZF, PF according to result." ],
[ "UD2", "0F 0B", "", "", True, True, "Undefined Instruction", "Raise invalid opcode exception." ],
[ "VERR", "0F 00 /4", "r/m16", "M", True, True, "Verify a Segment for Reading or Writing", "Set ZF=1 if segment specified with r/m16 can be read." ],
[ "VERW", "0F 00 /5", "r/m16", "M", True, True, "Verify a Segment for Reading or Writing", "Set ZF=1 if segment specified with r/m16 can be written." ],
[ "WAIT", "9B", "", "", True, True, "Wait", "Check pending unmasked floating-point exceptions." ],
[ "FWAIT", "9B", "", "", True, True, "Wait", "Check pending unmasked floating-point exceptions." ],
[ "WBINVD", "0F 09", "", "", True, True, "Write Back and Invalidate Cache", "Write back and flush Internal caches; initiate writing-back and flushing of external caches." ],
[ "WRMSR", "0F 30", "", "", True, True, "Write to Model Specific Register", "Write the value in EDX:EAX to MSR specified by ECX." ],
[ "XADD", "0F C0 /r", "r/m8, r8", "MR", True, True, "Exchange and Add", "Exchange r8 and r/m8; load sum into r/m8." ],
[ "XADD", "REX+ 0F C0 /r", "r/m8, r8", "MR", True, False, "Exchange and Add", "Exchange r8 and r/m8; load sum into r/m8." ],
[ "XADD", "0F C1 /r", "r/m16, r16", "MR", True, True, "Exchange and Add", "Exchange r16 and r/m16; load sum into r/m16." ],
[ "XADD", "0F C1 /r", "r/m32, r32", "MR", True, True, "Exchange and Add", "Exchange r32 and r/m32; load sum into r/m32." ],
[ "XADD", "REX.W+ 0F C1 /r", "r/m64, r64", "MR", True, False, "Exchange and Add", "Exchange r64 and r/m64; load sum into r/m64." ],
[ "XCHG", "90+ rw", "AX, r16", "FO", True, True, "Exchange Register/Memory with Register", "Exchange r16 with AX." ],
[ "XCHG", "90+ rw", "r16, AX", "OF", True, True, "Exchange Register/Memory with Register", "Exchange AX with r16." ],
[ "XCHG", "90+ rd", "EAX, r32", "FO", True, True, "Exchange Register/Memory with Register", "Exchange r32 with EAX." ],
[ "XCHG", "REX.W+ 90+ rd", "RAX, r64", "FO", True, False, "Exchange Register/Memory with Register", "Exchange r64 with RAX." ],
[ "XCHG", "90+ rd", "r32, EAX", "OF", True, True, "Exchange Register/Memory with Register", "Exchange EAX with r32." ],
[ "XCHG", "REX.W+ 90+ rd", "r64, RAX", "OF", True, False, "Exchange Register/Memory with Register", "Exchange RAX with r64." ],
[ "XCHG", "86 /r", "r/m8, r8", "MR", True, True, "Exchange Register/Memory with Register", "Exchange r8 (byte register) with byte from r/m8." ],
[ "XCHG", "REX+ 86 /r", "r/m8, r8", "MR", True, False, "Exchange Register/Memory with Register", "Exchange r8 (byte register) with byte from r/m8." ],
[ "XCHG", "86 /r", "r8, r/m8", "RM", True, True, "Exchange Register/Memory with Register", "Exchange byte from r/m8 with r8 (byte register)." ],
[ "XCHG", "REX+ 86 /r", "r8, r/m8", "RM", True, False, "Exchange Register/Memory with Register", "Exchange byte from r/m8 with r8 (byte register)." ],
[ "XCHG", "87 /r", "r/m16, r16", "MR", True, True, "Exchange Register/Memory with Register", "Exchange r16 with word from r/m16." ],
[ "XCHG", "87 /r", "r16, r/m16", "RM", True, True, "Exchange Register/Memory with Register", "Exchange word from r/m16 with r16." ],
[ "XCHG", "87 /r", "r/m32, r32", "MR", True, True, "Exchange Register/Memory with Register", "Exchange r32 with doubleword from r/m32." ],
[ "XCHG", "REX.W+ 87 /r", "r/m64, r64", "MR", True, False, "Exchange Register/Memory with Register", "Exchange r64 with quadword from r/m64." ],
[ "XCHG", "87 /r", "r32, r/m32", "RM", True, True, "Exchange Register/Memory with Register", "Exchange doubleword from r/m32 with r32." ],
[ "XCHG", "REX.W+ 87 /r", "r64, r/m64", "RM", True, False, "Exchange Register/Memory with Register", "Exchange quadword from r/m64 with r64." ],
[ "XGETBV", "0F 01 D0", "", "", True, True, "Get Value of Extended Control Register", "Reads an XCR specified by ECX into EDX:EAX." ],
[ "XLAT", "D7", "m8", "", True, True, "Table Look-up Translation", "Set AL to memory byte DS:[(E)BX + unsigned AL]." ],
[ "XLATB", "D7", "", "", True, True, "Table Look-up Translation", "Set AL to memory byte DS:[(E)BX + unsigned AL]." ],
[ "XLATB", "REX.W+ D7", "", "", True, False, "Table Look-up Translation", "Set AL to memory byte [RBX + unsigned AL]." ],
[ "XOR", "34 ib", "AL, imm8", "FI", True, True, "Logical Exclusive OR", "AL XOR imm8." ],
[ "XOR", "35 iw", "AX, imm16", "FI", True, True, "Logical Exclusive OR", "AX XOR imm16." ],
[ "XOR", "35 id", "EAX, imm32", "FI", True, True, "Logical Exclusive OR", "EAX XOR imm32." ],
[ "XOR", "REX.W+ 35 id", "RAX, imm32", "FI", True, False, "Logical Exclusive OR", "RAX XOR imm32 (sign-extended)." ],
[ "XOR", "80 /6 ib", "r/m8, imm8", "MI", True, True, "Logical Exclusive OR", "r/m8 XOR imm8." ],
[ "XOR", "REX+ 80 /6 ib", "r/m8, imm8", "MI", True, False, "Logical Exclusive OR", "r/m8 XOR imm8." ],
[ "XOR", "81 /6 iw", "r/m16, imm16", "MI", True, True, "Logical Exclusive OR", "r/m16 XOR imm16." ],
[ "XOR", "81 /6 id", "r/m32, imm32", "MI", True, True, "Logical Exclusive OR", "r/m32 XOR imm32." ],
[ "XOR", "REX.W+ 81 /6 id", "r/m64, imm32", "MI", True, False, "Logical Exclusive OR", "r/m64 XOR imm32 (sign-extended)." ],
[ "XOR", "83 /6 ib", "r/m16, imm8", "MI", True, True, "Logical Exclusive OR", "r/m16 XOR imm8 (sign-extended)." ],
[ "XOR", "83 /6 ib", "r/m32, imm8", "MI", True, True, "Logical Exclusive OR", "r/m32 XOR imm8 (sign-extended)." ],
[ "XOR", "REX.W+ 83 /6 ib", "r/m64, imm8", "MI", True, False, "Logical Exclusive OR", "r/m64 XOR imm8 (sign-extended)." ],
[ "XOR", "30 /r", "r/m8, r8", "MR", True, True, "Logical Exclusive OR", "r/m8 XOR r8." ],
[ "XOR", "REX+ 30 /r", "r/m8, r8", "MR", True, False, "Logical Exclusive OR", "r/m8 XOR r8." ],
[ "XOR", "31 /r", "r/m16, r16", "MR", True, True, "Logical Exclusive OR", "r/m16 XOR r16." ],
[ "XOR", "31 /r", "r/m32, r32", "MR", True, True, "Logical Exclusive OR", "r/m32 XOR r32." ],
[ "XOR", "REX.W+ 31 /r", "r/m64, r64", "MR", True, False, "Logical Exclusive OR", "r/m64 XOR r64." ],
[ "XOR", "32 /r", "r8, r/m8", "RM", True, True, "Logical Exclusive OR", "r8 XOR r/m8." ],
[ "XOR", "REX+ 32 /r", "r8, r/m8", "RM", True, False, "Logical Exclusive OR", "r8 XOR r/m8." ],
[ "XOR", "33 /r", "r16, r/m16", "RM", True, True, "Logical Exclusive OR", "r16 XOR r/m16." ],
[ "XOR", "33 /r", "r32, r/m32", "RM", True, True, "Logical Exclusive OR", "r32 XOR r/m32." ],
[ "XOR", "REX.W+ 33 /r", "r64, r/m64", "RM", True, False, "Logical Exclusive OR", "r64 XOR r/m64." ],
[ "XRSTOR", "0F AE /5", "mem", "M", True, True, "Restore Processor Extended States", "Restore state components specified by EDX:EAX from mem." ],
[ "XRSTOR64", "REX.W+ 0F AE /5", "mem", "M", True, False, "Restore Processor Extended States", "Restore state components specified by EDX:EAX from mem." ],
[ "XRSTORS", "0F C7 /3", "mem", "M", True, True, "Restore Processor Extended States Supervisor", "Restore state components specified by EDX:EAX from mem." ],
[ "XRSTORS64", "REX.W+ 0F C7 /3", "mem", "M", True, False, "Restore Processor Extended States Supervisor", "Restore state components specified by EDX:EAX from mem." ],
[ "XSAVE", "0F AE /4", "mem", "M", True, True, "Save Processor Extended States", "Save state components specified by EDX:EAX to mem." ],
[ "XSAVE64", "REX.W+ 0F AE /4", "mem", "M", True, False, "Save Processor Extended States", "Save state components specified by EDX:EAX to mem." ],
[ "XSAVEC", "0F C7 /4", "mem", "M", True, True, "Save Processor Extended States with Compaction", "Save state components specified by EDX:EAX to mem with compaction." ],
[ "XSAVEC64", "REX.W+ 0F C7 /4", "mem", "M", True, False, "Save Processor Extended States with Compaction", "Save state components specified by EDX:EAX to mem with compaction." ],
[ "XSAVES", "0F C7 /5", "mem", "M", True, True, "Save Processor Extended States Supervisor", "Save state components specified by EDX:EAX to mem with compaction, optimizing if possible." ],
[ "XSAVES64", "REX.W+ 0F C7 /5", "mem", "M", True, False, "Save Processor Extended States Supervisor", "Save state components specified by EDX:EAX to mem with compaction, optimizing if possible." ],
[ "XSETBV", "0F 01 D1", "", "", True, True, "Set Extended Control Register", "Write the value in EDX:EAX to the XCR specified by ECX." ],
[ "JA", "77 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if above (CF=0 and ZF=0)." ],
[ "JAE", "73 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if above or equal (CF=0)." ],
[ "JB", "72 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if below (CF=1)." ],
[ "JBE", "76 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if below or equal (CF=1 or ZF=1)." ],
[ "JC", "72 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if carry (CF=1)." ],
[ "JCXZ", "E3 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if CX register is 0." ],
[ "JECXZ", "E3 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if ECX register is 0." ],
[ "JRCXZ", "E3 cb", "rel8", "D", True, False, "Jump if Condition Is Met", "Jump short if RCX register is 0." ],
[ "JE", "74 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if equal (ZF=1)." ],
[ "JG", "7F cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if greater (ZF=0 and SF=OF)." ],
[ "JGE", "7D cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if greater or equal (SF=OF)." ],
[ "JL", "7C cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if less (SF^OF)." ],
[ "JLE", "7E cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if less or equal (ZF=1 or SF^OF)." ],
[ "JNA", "76 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not above (CF=1 or ZF=1)." ],
[ "JNAE", "72 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not above or equal (CF=1)." ],
[ "JNB", "73 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not below (CF=0)." ],
[ "JNBE", "77 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not below or equal (CF=0 and ZF=0)." ],
[ "JNC", "73 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not carry (CF=0)." ],
[ "JNE", "75 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not equal (ZF=0)." ],
[ "JNG", "7E cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not greater (ZF=1 or SF^OF)." ],
[ "JNGE", "7C cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not greater or equal (SF^OF)." ],
[ "JNL", "7D cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not less (SF=OF)." ],
[ "JNLE", "7F cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not less or equal (ZF=0 and SF=OF)." ],
[ "JNO", "71 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not overflow (OF=0)." ],
[ "JNP", "7B cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not parity (PF=0)." ],
[ "JNS", "79 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not sign (SF=0)." ],
[ "JNZ", "75 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if not zero (ZF=0)." ],
[ "JO", "70 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if overflow (OF=1)." ],
[ "JP", "7A cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if parity (PF=1)." ],
[ "JPE", "7A cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if parity even (PF=1)." ],
[ "JPO", "7B cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if parity odd (PF=0)." ],
[ "JS", "78 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if sign (SF=1)." ],
[ "JZ", "74 cb", "rel8", "D", True, True, "Jump if Condition Is Met", "Jump short if zero (ZF = 1)." ],
[ "JA", "0F 87 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if above (CF=0 and ZF=0). Not supported in 64-bit mode." ],
[ "JA", "0F 87 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if above (CF=0 and ZF=0)." ],
[ "JAE", "0F 83 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if above or equal (CF=0). Not supported in 64-bit mode." ],
[ "JAE", "0F 83 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if above or equal (CF=O)." ],
[ "JB", "0F 82 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if below (CF=1). Not supported in 64-bit mode." ],
[ "JB", "0F 82 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if below (CF=1)." ],
[ "JBE", "0F 86 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if below or equal (CF=1 or ZF=1). Not supported in 64-bit mode." ],
[ "JBE", "0F 86 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if below or equal (CF=1 or ZF=1)." ],
[ "JC", "0F 82 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if carry (CF=1). Not supported in 64-bit mode." ],
[ "JC", "0F 82 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if carry (CF=1)." ],
[ "JE", "0F 84 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if equal (ZF=1). Not supported in 64-bit mode." ],
[ "JE", "0F 84 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if equal (ZF=1)." ],
[ "JZ", "0F 84 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if O (ZF=1). Not supported in 64-bit mode." ],
[ "JZ", "0F 84 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if O (ZF=1)." ],
[ "JG", "0F 8F cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if greater (ZF=O and SF=OF). Not supported in 64-bit mode." ],
[ "JG", "0F 8F cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if greater (ZF=O and SF=OF)." ],
[ "JGE", "0F 8D cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if greater or equal (SF=OF). Not supported in 64-bit mode." ],
[ "JGE", "0F 8D cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if greater or equal (SF=OF)." ],
[ "JL", "0F 8C cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if less (SF^OF). Not supported in 64-bit mode." ],
[ "JL", "0F 8C cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if less (SF^OF)." ],
[ "JLE", "0F 8E cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if less or equal (ZF=1 or SF^OF). Not supported in 64-bit mode." ],
[ "JLE", "0F 8E cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if less or equal (ZF=1 or SF^OF)." ],
[ "JNA", "0F 86 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not above (CF=1 or ZF=1). Not supported in 64-bit mode." ],
[ "JNA", "0F 86 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not above (CF=1 or ZF=1)." ],
[ "JNAE", "0F 82 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not above or equal (CF=1). Not supported in 64-bit mode." ],
[ "JNAE", "0F 82 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not above or equal (CF=1)." ],
[ "JNB", "0F 83 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not below (CF=O). Not supported in 64-bit mode." ],
[ "JNB", "0F 83 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not below (CF=O)." ],
[ "JNBE", "0F 87 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not below or equal (CF=O and ZF=O). Not supported in 64-bit mode." ],
[ "JNBE", "0F 87 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not below or equal (CF=O and ZF=O)." ],
[ "JNC", "0F 83 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not carry (CF=O). Not supported in 64-bit mode." ],
[ "JNC", "0F 83 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not carry (CF=O)." ],
[ "JNE", "0F 85 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not equal (ZF=0). Not supported in 64-bit mode." ],
[ "JNE", "0F 85 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not equal (ZF=0)." ],
[ "JNG", "0F 8E cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not greater (ZF=1 or SF^OF). Not supported in 64-bit mode." ],
[ "JNG", "0F 8E cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not greater (ZF=1 or SF^OF)." ],
[ "JNGE", "0F 8C cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not greater or equal (SF^OF). Not supported in 64-bit mode." ],
[ "JNGE", "0F 8C cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not greater or equal (SF^OF)." ],
[ "JNL", "0F 8D cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not less (SF=OF). Not supported in 64-bit mode." ],
[ "JNL", "0F 8D cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not less (SF=OF)." ],
[ "JNLE", "0F 8F cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not less or equal (ZF=0 and SF=OF). Not supported in 64-bit mode." ],
[ "JNLE", "0F 8F cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not less or equal (ZF=0 and SF=OF)." ],
[ "JNO", "0F 81 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not overflow (OF=0). Not supported in 64-bit mode." ],
[ "JNO", "0F 81 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not overflow (OF=0)." ],
[ "JNP", "0F 8B cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not parity (PF=0). Not supported in 64-bit mode." ],
[ "JNP", "0F 8B cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not parity (PF=0)." ],
[ "JNS", "0F 89 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not sign (SF=0). Not supported in 64-bit mode." ],
[ "JNS", "0F 89 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not sign (SF=0)." ],
[ "JNZ", "0F 85 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if not zero (ZF=0). Not supported in 64-bit mode." ],
[ "JNZ", "0F 85 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if not zero (ZF=0)." ],
[ "JO", "0F 80 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if overflow (OF=1). Not supported in 64-bit mode." ],
[ "JO", "0F 80 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if overflow (OF=1)." ],
[ "JP", "0F 8A cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if parity (PF=1). Not supported in 64-bit mode." ],
[ "JP", "0F 8A cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if parity (PF=1)." ],
[ "JPE", "0F 8A cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if parity even (PF=1). Not supported in 64-bit mode." ],
[ "JPE", "0F 8A cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if parity even (PF=1)." ],
[ "JPO", "0F 8B cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if parity odd (PF=0). Not supported in 64-bit mode." ],
[ "JPO", "0F 8B cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if parity odd (PF=0)." ],
[ "JS", "0F 88 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if sign (SF=1). Not supported in 64- bit mode." ],
[ "JS", "0F 88 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if sign (SF=1)." ],
[ "JZ", "0F 84 cw", "rel16", "D", False, True, "Jump if Condition Is Met", "Jump near if 0 (ZF=1). Not supported in 64-bit mode." ],
[ "JZ", "0F 84 cd", "rel32", "D", True, True, "Jump if Condition Is Met", "Jump near if 0 (ZF=1)." ],
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment