Files
x86_microcode/80386/decoder23.txt
T
2026-05-23 11:01:52 +01:00

539 lines
28 KiB
Plaintext

?000000001?01 0000000000000000
?0001?0001?01 0000000000000000
?001?00001?01 0000000000000000
?00?010001?01 0000000000000000
?000000010?01 0000000000000000
?0001?0010?01 0000000000000000
?0010?0010?01 0000000000000000
?001110010?0? 0000000000000000
?001110011?00 0000000000000000
?00000001??00 0000000000000000
?0001?001??00 0000000000000000
?001?0001??00 0000000000000000
?00?01001??00 0000000000000000
?0000100?0?01 0000000000000000
?0011000?0?01 0000000000000000
?0000001???01 0000000000000000
?0001?01???01 0000000000000000
?0010?01???01 0000000000000000
?00001100??01 0000000000000000
?00110100??01 0000000000000000
?000011111?00 0000000000000000
?000001111?0? 0000000000000000
?0001?1111?0? 0000000000000000
?0010?1111?0? 0000000000000000
?0000011?0?01 0000000000000000
?0001?11?0?01 0000000000000000
?0010?11?0?01 0000000000000000
?000001?01?01 0000000000000000
?0001?1?01?01 0000000000000000
?0010?1?01?01 0000000000000000
?00000?000?01 0000000000000000
?0001??000?01 0000000000000000
?0010??000?01 0000000000000000
?00111?00??01 0000000000000000
?00001?1???01 0000000000000000
?0011??1???01 0000000000000000
?01???0000?01 0000000000000000
?01???0010?00 0000000000000000
?01???0011?01 0000000000000000
?01???0101?01 0000000000000000
?01???0111?00 0000000000000000
?01???01?0?01 0000000000000000
?010001011?00 0000000000000000
?01?011011?00 0000000000000000
?01?1?1011?00 0000000000000000
?011001011?00 0000000000000000
?01???10?0?01 0000000000000000
?010001101?00 0000000000000000
?01?011101?00 0000000000000000
?01?1?1101?00 0000000000000000
?011001101?00 0000000000000000
?0100011?0?00 0000000000000000
?01?0111?0?00 0000000000000000
?01?1?11?0?00 0000000000000000
?0110011?0?00 0000000000000000
?01????001?01 0000000000000000
?100000000100 0000000000000000
?10???0001?00 0000000000000000
?1000?0100?00 0000000000000000
?1001?0?00?00 0000000000000000
?101??0?00?00 0000000000000000
?10???1001?01 0000000000000000
?10???101??01 0000000000000000
?10???1?00?01 0000000000000000
?10????101?00 0000000000000000
?10????11??00 0000000000000000
?111?00000000 0000000000000000
?11?000000100 0000000000000000
?1101?0000?00 0000000000000000
?111?10000?00 0000000000000000
?11110000?100 0000000000000000
?11???011??01 0000000000000000
?1111001?1100 0000000000000000
?111100?01000 0000000000000000
?110010?01?00 0000000000000000
?1101?0?01?00 0000000000000000
?111?10?01?00 0000000000000000
?11?000?01?00 0000000000000000
?11???10???01 0000000000000000
?11????100?00 0000000000000000
?1?0000000000 0000000000000000
?1?0010000?00 0000000000000000
?1????001??00 0000000000000000
.abRRRcdefg0i
?00???101?00? 0000000000000011 MOV rm,r / MOV r,rm rm = register
?010000001000 0000000000000101 MOV rm,i rm = register
?0001?1101000 0000000000000111 MOV(ZX) rmv,SS/DS rm = register
?00?0?1101000 0000000000000111 MOV(ZX) rmv,ES/CS/FS/GS rm = register
?000001100000 0000000000001001 MOV ES,rmw real rm = register
?0001?1100000 0000000000001001 MOV SS/DS,rmw real rm = register
?0010?1100000 0000000000001001 MOV FS/GS,rmw real rm = register
?0001011?0100 0001000000001011 MOV SS,rmw rm = memory
?0000011?0100 0001000000001111 MOV ES,rmw rm = memory
?0001111?0100 0001000000001111 MOV DS,rmw rm = memory
?0010?11?0100 0001000000001111 MOV FS/GS,rmw rm = memory
?00???101010? 0001000000010011 MOV rm,r rm = memory
?010000001100 0001000000010101 MOV rm,i rm = memory
?0001?1101100 0001000000010111 MOV(ZX) rmv,SS/DS rm = memory
?00?0?1101100 0001000000010111 MOV(ZX) rmv,ES/CS/FS/GS rm = memory
?00???101110? 0001000000011001 MOV r,rm rm = memory
?00???000?000 0000000000011101 alu rm<->r excluding CMP rm = register
?00???0100000 0000000000011111 CMP rm,r rm = register
?00???01?1000 0000000000011111 CMP r,rm / TEST rm,r rm = register
?0100?010?000 0000000000100001 INC/DEC rm rm = register
?0101?0110000 0000000000100001 NOT/NEG rm rm = register
?000000110000 0000000000100011 ADD rm,i rm = register
?0001?0110000 0000000000100011 ADC/SBB rm,i rm = register
?001?00110000 0000000000100011 AND/XOR rm,i rm = register
?00?010110000 0000000000100011 OR/SUB rm,i rm = register
?001110110000 0000000000100101 CMP rm,i rm = register
?0100?0110000 0000000000100101 TEST rm,i rm = register
?00???0001100 0001000000100111 alu r,rm excluding CMP rm = memory
?00???0101100 0001000000101100 CMP r,rm rm = memory
?001110110100 0001000000110001 CMP rm,i rm = memory
?0100?0110100 0001000000110001 TEST rm,i rm = memory
?00???0100100 0001000000110101 CMP rm,r rm = memory
?00???0111100 0001000000110101 TEST rm,r rm = memory
?000000110100 1001000000111001 ADD rm,i rm = memory
?0001?0110100 1001000000111001 ADC/SBB rm,i rm = memory
?001?00110100 1001000000111001 AND/XOR rm,i rm = memory
?00?010110100 1001000000111001 AND/XOR rm,i rm = memory
?10???1101001 0000000000111101 SETcond rmb rm = register
?10???1101101 0001000001000011 SETcond rmb rm = memory
?00???0000100 1001000001001010 alu rm,r excluding CMP rm = memory
?0100?010?100 1001000001001110 INC/DEC rm rm = memory
?0101?0110100 1001000001001110 NOT/NEG rm rm = memory
?011000101000 0000000001101101 JMP rmv rm = register
?011000101100 0001000001101111 JMP rmv rm = memory
?010100101000 0010000001111001 CALL rmv rm = register
?010100101100 0001000001111100 CALL rmv rm = memory
?011100101100 0001000010000001 PUSH rmv rm = memory
?011100101000 0010000010000110 PUSH rmv rm = register
?010000000000 0011000010011111 POP rmv rm = register
?010000000100 0011000010101100 POP rmv rm = memory
?00???1000100 1001000010110001 XCHG rm,r rm = memory
?00???1000000 0000000010110110 XCHG rm,r rm = register
?11???1000100 0001000010111001 LEA rv,m rm = memory
?11???1010100 0001000010111011 LDS rv,m rm = memory
?11???1001100 0001000011000010 LES rv,m rm = memory
?11???1100101 0001000011001001 LSS rv,m rm = memory
?01???1110101 0001000011010000 LFS/LGS rv,m rm = memory
?0101?1000000 0000000011100101 RCL/RCR rm,ib rm = register
?0101?1010000 0000000011101001 RCL/RCR rm,CL rm = register
?0100?1000000 0000000011111001 ROL/ROR rm,ib rm = register
?011??1000000 0000000011111001 SHL/SHR/SAR rm,ib rm = register
?10???0110001 0000000011111100 SHxD rmv,rv,ib rm = register
?0100?1010000 0000000011111111 ROL/ROR rm,CL rm = register
?011??1010000 0000000011111111 SHL/SHR/SAR rm,CL rm = register
?10???0111001 0000000100000010 SHxD rmv,rv,CL rm = register
?01???1001000 0000000100000101 rot rm,1 rm = register
?0101?1000100 0001000100001000 RCL/RCR rm,ib rm = memory
?0101?1010100 0001000100001100 RCL/RCR rm,CL rm = memory
?0100?1000100 0001000100011110 ROL/ROR rm,ib rm = memory
?011??1000100 0001000100011110 SHL/SHR/SAR rm,ib rm = memory
?10???0110101 0001000100100100 SHxD rmv,rv,ib rm = memory
?01???1001100 0001000100101010 rot rm,1 rm = memory
?0100?1010100 0001000100101101 ROL/ROR rm,CL rm = memory
?011??1010100 0001000100101101 SHL/SHR/SAR rm,CL rm = memory
?10???0111101 0001000100101111 SHxD rmv,rv,CL rm = memory
?01???1011001 0000000100110001 BT rv/m,rv rm = register
?01???1011101 0001000100110100 BT rv/m,rv rm = memory
?011001100001 0000000100111111 BT rv/m,ib rm = register
?011001100101 0001000101000010 BT rv/m,ib rm = memory
?01???1101001 0000000101000111 BTS/BTR/BTC rv/m,rv rm = register
?01???1101101 1001000101001101 BTS/BTR/BTC rv/m,rv rm = memory
?011011100001 0000000101011010 BTS rv/m,ib rm = register
?0111?1100001 0000000101011010 BTR/BTC rv/m,ib rm = register
?011011100101 1001000101100000 BTS rv/m,ib rm = memory
?0111?1100101 1001000101100000 BTR/BTC rv/m,ib rm = memory
?11???0000001 0000000101101000 BSF rv,rmv rm = register
?11???0000101 0001000101110111 BSF rv,rmv rm = memory
?11???0001001 0000000101111010 BSR rv,rmv rm = register
?11???0001101 0001000110000100 BSR rv,rmv rm = memory
?0110?0110000 0000000110100101 MUL/IMUL rm rm = register
?0110?0110100 0001000110101111 MUL/IMUL rm rm = memory
?00???0011001 0000000110110011 IMUL rm,rmv rm = register
?00???0011101 0001000110111101 IMUL rm,rmv rm = memory
?00???1001100 0001000111000001 IMUL rv,rmv,i rm = memory
?00???1001000 0000000111000100 IMUL rv,rmv,i rm = register
?011100110000 0000000111000111 DIV rm rm = register
?011100110100 0001000111001111 DIV rm rm = memory
?011110110000 0000000111010011 IDIV rm rm = register
?011110110100 0001000111100001 IDIV rm rm = memory
?10???1110001 0000000111101000 MOVZX/MOVSX r,rm (16-bit?) rm = register
?10???1110101 0001000111101011 MOVZX/MOVSX r,rm (16-bit?) rm = memory
?10???1111001 0000000111110000 MOVZX/MOVSX r,rm (32-bit?) rm = register
?10???1111101 0001000111110011 MOVZX/MOVSX r,rm (32-bit?) rm = memory
?010110101100 0001001011011010 CALL mp rm = memory
?011010101100 0001001011110101 JMP mp rm = memory
?100110001101 0001001100101110 LIDT rmw rm = memory
?100100001101 0001001100110010 LGDT rmw rm = memory
?100010001101 0000001100111101 SIDT rmw rm = memory
?100000001101 0000001101000000 SGDT rmw rm = memory
?101100001101 0001001101001001 LMSW rmw rm = memory
?101100001001 0000001101001110 LMSW rmw rm = register
?101000001001 0000001101011000 SMSW rmw rm = register
?101000001101 0001001101011010 SMSW rmw rm = memory
?110000010?01 0000001101011100 MOV CR0,rd
?110100010?01 0000001101101000 MOV CR2,rd
?110110010?01 0000001101101100 MOV CR3,rd
?110000011?01 0000001101110001 MOV rd,CR0
?110100011?01 0000001101110111 MOV rd,CR2
?110110011?01 0000001101111001 MOV rd,CR3
?111?00100?01 0000001101111011 MOV DR4/6,rd
?111?10100?01 0000001101111111 MOV DR5/7,rd
?110??0100?01 0000001110001010 MOV DR0-3,rd
?011??0010?01 0000001110010001 MOV TRn,rd
?111?00101?01 0000001110100110 MOV rd,DR4/6
?111?10101?01 0000001110101010 MOV rd,DR5/7
?110??0101?01 0000001110101110 MOV rd,DR0-3
?011??0111?01 0000001110110110 MOV rd,TRn
?11???0111000 0000001111001101 ESC 3 rm = register FENI/FDISI/FCLEX/FINIT/FSETPM/FRSTPM
?10111101?100 0000001111011001 ESC 5/1,7 rm = memory FSTCW/FSTSW mw
?101??1100000 0000001111011010 ESC 7,4-7 rm = register FSTSW AX/FNSTDW/FNSTSG
?101101011100 0001001111101101 ESC 1,6 rm = memory FSTENV m
?101101010100 0001001111110000 ESC 5,6 rm = memory FSAVE m
?101001011100 0001010001011001 ESC 1,4 rm = memory FLDENV m
?101001010100 0001010001011100 ESC 5,4 rm = memory FRSTOR m
?100??1001000 0000010011000001 ESC 6,0-3 rm = register FADDP/FMULP/FCOMP/??? STi,ST0
?10?011010100 0000010011000001 ESC 5,1/5 rm = memory unknown fp op?
?100011011?00 0000010011000001 ESC 1,1 FXCH ST0,STi
?10000101?000 0000010011000001 ESC 5/1,0 rm = register FLD STi/FFREE STi
?1001?101?000 0000010011000001 ESC 5/1,2-3 rm = register FCOM/FCOMP STi
?1000110?0000 0000010011000001 ESC 0/2/5,1 rm = register FMUL/FXCH ST0,STi
?101??10??000 0000010011000001 ESC 0/2/6/5/1,4-7 rm = register FSUB/FSUBR/FDIV/FDIVR ST0,STi / FCHS/FABS/FTST/FXAM/FLD1/FLD1/FLDL2T/FLDL2E/FLDPI/FLDLG2/FLDLN2/FLDZ/F2XM1/FYL2X/FPTAN/FPATAN/FXTRACT/FPREM1/FDECSTP/FINCSTP/FPREM/FYL2XP1/FSQRT/FSINCOS/FRNDINT/FSCALE/FSIN/FCOS/FUCOMPP / FUCOM/FUCOMP STi / FSUBRP/FSUBP/FDIVRP/FDIVP STi,ST0
?100011100?00 0000010011000001 ESC 7,1 FXCH ST0,STi
?100001?00000 0000010011000001 ESC 0/2/7,0 rm = register
?1001?1?00000 0000010011000001 ESC 0/2/7,2-3 rm = register
?11???0110000 0000010011000001 ESC 4 rm = register FADD/FMUL/FCOM/FCOMP/FSUBR/FSUB/FDIVR/FDIV STi,ST0
?110010111100 0000010011000001 ESC 3,1 rm = memory unknown fp op?
?111000111100 0000010011000001 ESC 3,4 rm = memory unknown fp op?
?101001100100 0001010011010011 ESC 7,4 rm = memory FBLD mt
?111010111100 0001010011010011 ESC 3,5 rm = memory FLD mt
?10???1000100 0001010011010111 ESC 0/2 rm = memory FADD/FMUL/FCOM/FCOMP/FSUB/FSUBR/FDIV/FDIVR/FIADD/FIMUL/FICOM/FICOMP/FISUB/FISUBR/FIDIV/FIDIVR md
?100001011100 0001010011010111 ESC 1,0 rm = memory FLD md
?110000111100 0001010011010111 ESC 3,0 rm = memory FILD md
?100001010100 0001010011011011 ESC 5,0 rm = memory FLD mq
?101011100100 0001010011011011 ESC 7,5 rm = memory FILD mq
?11???0110100 0001010011011011 ESC 4 rm = memory FADD/FMUL/FCOM/FCOMP/FSUBR/FSUB/FDIVR/FDIV mq
?101011011100 0001010011011111 ESC 1,5 rm = memory FLDCW mw
?10???1001100 0001010011100000 ESC 6 rm = memory FIADD/FIMUL/FICOM/FICOMP/FISUB/FISUBR/FIDIV/FIDIVR mw
?100001100100 0001010011100000 ESC 7,0 rm = memory FILD mw
?101101100100 0001010100111000 ESC 7,6 rm = memory FBSTP mt
?111110111100 0001010100111000 ESC 3,7 rm = memory FSTP mt
?1001?1011100 0001010100111100 ESC 1,2-3 rm = memory FST/FSTP md
?1101?0111100 0001010100111100 ESC 3,2-3 rm = memory FIST/FISTP md
?1001?1010100 0001010101000000 ESC 5,2-3 rm = memory FST/FSTP mq
?101111100100 0001010101000000 ESC 7,7 rm = memory FISTP mq
?1001?1100100 0001010101000100 ESC 7,2-3 rm = memory FIST/FISTP mw
?000001110000 0000010110000000 MOV ES,rmw protected rm = register
?000111110000 0000010110000000 MOV DS,rmw protected rm = register
?0010?1110000 0000010110000000 MOV FS/GS,rmw protected rm = register
?000101110000 0000010110000101 MOV SS,rmw protected rm = register
?01???0011100 0001011010101010 ARPL rmw,rw protected rm = memory
?01???0011000 0000011010110110 ARPL rmw,rw protected rm = register
?100110000101 0001011010111110 LTR rmw rm = memory
?100110000001 0000011011000011 LTR rmw rm = register
?100010000101 0001011011001101 STR rmw rm = memory
?100010000001 0000011011001111 STR rmw rm = register
?100100000101 0001011011010001 LLDT rmw rm = memory
?100100000001 0000011011010110 LLDT rmw rm = register
?100000000101 0001011011100000 SLDT rmw rm = memory
?100000000001 0000011011100010 SLDT rmw rm = register
?10???0010101 0001011011100100 LAR rv,rmv protected rm = memory
?10???0010001 0000011011100111 LAR rv,rmv protected rm = register
?10???0011101 0001011011101010 LSL rv,rmv rm = memory
?10???0011001 0000011011101100 LSL rv,rmv rm = register
?101000000101 0001011100000000 VERR rmw rm = memory
?101000000001 0000011100000011 VERR rmw rm = register
?101010000101 0001011100000110 VERW rmw rm = memory
?101010000001 0000011100001001 VERW rmw rm = register
?11???1011100 0001100000011000 BOUND rv,m2v rm = memory
?0000111?0?00 0000100000101011 illegal?
?0011?11???00 0000100000101011 illegal?
?0101?0000000 0000100000101011 illegal?
?0110?0000000 0000100000101011 illegal?
?010100000100 0000100000101011 illegal?
?011000000100 0000100000101011 illegal?
?010010000?00 0000100000101011 illegal?
?0101?0001?00 0000100000101011 illegal?
?011?00001?00 0000100000101011 illegal?
?01?010001?00 0000100000101011 illegal?
?010??0010?01 0000100000101011 illegal?
?010100100?00 0000100000101011 illegal?
?011000100?00 0000100000101011 illegal?
?01011010?000 0000100000101011 illegal?
?01101010?000 0000100000101011 illegal?
?010110?00100 0000100000101011 illegal?
?011010?00100 0000100000101011 illegal?
?011100?00?00 0000100000101011 illegal?
?011110?0??00 0000100000101011 illegal?
?010??1100101 0000100000101011 illegal?
?011??1110001 0000100000101011 illegal?
?011??1111?01 0000100000101011 illegal?
?010??11?0001 0000100000101011 illegal?
?010???111?01 0000100000101011 illegal?
?101100000?01 0000100000101011 illegal?
?100??0001001 0000100000101011 illegal?
?101010001?01 0000100000101011 illegal?
?10111000??01 0000100000101011 illegal?
?1000?010??01 0000100000101011 illegal?
?1010?010??01 0000100000101011 illegal?
?10?1?010??01 0000100000101011 illegal?
?11001001??01 0000100000101011 illegal?
?111??001??01 0000100000101011 illegal?
?11???10??000 0000100000101011 illegal?
?11???1100001 0000100000101011 illegal?
?11???1111?01 0000100000101011 illegal?
??1???1111?00 0000100000101011 illegal?
?11???1110?0? 0000100001000100 unused?
?11???1101?0? 0000100001001001 unused?
?0000000???10 0000000000000000 ADD rm,r 00
?0001?00???10 0000000000000000 ADC/SBB rm,r
?001?000???10 0000000000000000 AND/XOR rm,r
?00?0100???10 0000000000000000 OR/SUB rm,r
?00001111??10 0000000000000000 0F prefix
?001??110??10 0000000000000000 ES:/CS:/SS:/DS:
?0110010???10 0000000000000000 FS:/GS:
?0110011???10 0000000000000000 operand size prefix, address size prefix
?1111001???10 0000000000000000 REP/REPNE
?11110000??10 0000000000000000 LOCK
?0000001???10 0000000000000001 ADD r,rm 04
?0001?01???10 0000000000000001 ADC/SBB r,rm
?001?001???10 0000000000000001 AND/XOR r,rm
?00?0101???10 0000000000000001 OR/SUB r,rm
?10101111??11 0000000000000011 IMUL rm,rmv 0c
?0011100???10 0000000000000100 CMP rm,r 10
?0011101???10 0000000000000101 CMP r,rm 14
?1011??????10 0000000000000101 MOV r,i
?100000????10 0000000000000110 alu rm,i 18
?1000010???10 0000000000000111 TEST rm,r 1c
?1000011???10 0000000000001000 XCHG rm,r 20
?011010?1??10 0000000000001001 IMUL rv,rmv,i 24
?1000100???10 0000000000001010 MOV rm,r 28
?0001000???11 0000000000001010 UMOV rm,r
?1000101???10 0000000000001011 MOV r,rm 2c
?0001001???11 0000000000001011 UMOV r,rm
?10001110?010 0000000000001100 MOV segreg,rmw 30
?10001100??10 0000000000001101 MOV(ZX) rmv,segreg 34
?10001110?110 0000000000001110 MOV segreg,rmw 38
?10001111??10 0000000000010000 POP mv 40
?1100011???10 0000000000010001 MOV rm,i 44
?00100110??11 0000000000010010 MOV TRn,rd 48
?01100011?110 0000000000010011 ARPL rmw,rw 4c
?1010001???10 0001000000010011 MOV [i],A
?11111110??10 0000000000010100 misc rmb 50
?11111111??10 0000000000010101 misc rmv 54
?1111011???10 0000000000010110 math rm 58
?00100100??11 0000000000010111 MOV rd,TRn 5c
?1100000???10 0000000000011000 rot rm,ib 60
?1101000???10 0000000000011001 rot rm,1 64
?1010000???10 0001000000011001 MOV A,[i]
?1101001???10 0000000000011010 rot rm,CL 68
?10100011??11 0000000000011011 BT rv/m,rv 6c
?10111010??11 0000000000011100 BT/BTS/BTR/BTC rv/m,ib 70
?10101011??11 0000000000011101 BTS rv/m,rv 74
?1011?011??11 0000000000011101 BTR/BTC rv/m,rv
?1011010???11 0000000000011110 LFS/LGS rv,m 78 IMM = 0x34 for LFS (opcode = 0xb4) and 0x35 for LGS (opcode = 0xb5)
?01100011?010 0000000000011111 ARPL rmw,rw 7c
?00000000?011 0000000000011111 SLDT/STR/LLT/LTR/VERR/VERW rmw
?0000001??011 0000000000011111 LAR/LSL rv,rmv
?00000000?111 0000000000100000 SLDT/STR/LLT/LTR/VERR/VERW rmw 80
?0100??????10 0000000000100001 INC/DEC rv 84
?00000001??11 0000000000100001 SGDT/SIDT/LGDT/LIDT/SMSW/LMSW rmw
?00000010?111 0000000000100010 LAR rv,rmv 88
?0000010???10 0000000000100011 ADD A,i weird? 8c
?0001?10???10 0000000000100011 ADC/SBB A,i weird?
?001?010???10 0000000000100011 AND/XOR A,i weird?
?00?0110???10 0000000000100011 OR/SUB A,i weird?
?00000011?111 0000000000100011 LSL rv,rmv
?10100111??11 0000000000100100 IBTS rmv,eAX,CL,rv 90
?0011110???10 0000000000100101 CMP A,i 94
?1010100???10 0000000000100101 TEST A,i
?10100110??11 0000000000100101 XBTS rv,rmv,eAX,CL
?1010?100??11 0000000000100110 SHxD rmv,rv,ib 98
?1010?101??11 0000000000100111 SHxD rmv,rv,CL 9c
?110110?0??10 0000000000101000 ESC 0/2 a0
?11011110??10 0000000000101001 ESC 6 a4
?11011101??10 0000000000101010 ESC 5 a8
?11011001??10 0000000000101011 ESC 1 ac
?11011111??10 0000000000101100 ESC 7 b0
?1001??????11 0000000000101101 SETcond rmb b4
01011?11???11 0000000000101110 MOVZX/MOVSX r,rm b8
11011?11???11 0000000000101111 MOVZX/MOVSX r,rm bc
?10111100??11 0000000000110000 BSF rv,rmv c0
?10111101??11 0000000000110001 BSR rv,rmv c4
?00100010??11 0000000000110010 MOV CRn,rd c8
?00100000??11 0000000000110011 MOV rd,CRn cc
?00100011??11 0000000000110100 MOV DRn,rd d0
?00100001??11 0000000000110101 MOV rd,DRn d4
?11011100??10 0000000000110110 ESC 4 d8
?11011011??10 0000000000110111 ESC 3 dc
?10001101??10 0000000000111000 LEA rv,m e0
?11000100??10 0000000000111001 LES e4
?11000101??10 0000000000111010 LDS e8
?01100010??10 0000000000111011 BOUND rv,m2v ec
?10110010??11 0000000000111100 LSS rv,m f0 IMM = 0x32 (opcode = 0xb2)
?11100011??10 0000000001010001 JCXZ cb
?11100010??10 0000000001010111 LOOP cb
?1110000???10 0000000001011111 LOOPE/LOOPNE cb
?0111??????10 0000000001100101 Jcond cb
?1000??????11 0000000001100101 Jcond cv
?111010?1??10 0000000001101010 JMP c
?1100001???10 0011000001110010 RET/RET iw
?11101000??10 0010000001110101 CALL cw
?01010?????10 0010000010000110 PUSH rv
?01100000??10 0000000010001000 PUSHAd
001100001??10 0011000010010001 POPAd
101100001??10 0011000010010111 POPAd
?000??110??10 0010000010011011 PUSH segreg
?1010?000??11 0010000010011011 PUSH FS/GS
?011010?0??10 0010000010011101 PUSH i
?01011?????10 0011000010011111 POP rv
?00010111??10 0011000010100010 POP SS
?00000111??10 0011000010100111 POP ES
?00011111??10 0011000010100111 POP DS
?1010?001??11 0011000010100111 POP FS/GS
?10010?????10 0000000010110110 XCHG eAX,rv
?10011111??10 0000000011010111 LAHF
?10011110??10 0000000011011001 SAHF
?00000110??11 0000000011011100 CLTS
?11010110??10 0000000011100001 SALC
?0011?111??10 0000000110000111 AAD/AAS
?0010?111??10 0000000110001011 DAA/DAS
?11010100??10 0000000110001111 AAM ib
?11010101??10 0000000110011001 AAD ib
?10011001??10 0000000111100110 CWD / CDQ
010011000??10 0000000111101000 CBW / CWDE
110011000??10 0000000111110000 CBW / CWDE
?1010010?1?10 0000000111111000 REP MOVS
?1010010?0?10 0000001000010001 MOVS
?1010011?1?10 0000001000011000 REP CMPS
?1010011?0?10 0000001000101011 CMPS
?1010111?1?10 0000001000110101 REP SCAS
?1010111?0?10 0000001001000111 SCAS
?1010110?1?10 0000001001001110 REP LODS
?1010110?0?10 0000001001011010 LODS
?11010111??10 0000001001011111 XLATB
?1010101?1?10 0000001001100011 REP STOS
?1010101?0?10 0000001001101110 STOS
?1110010??110 0000001001110010 IN A,ib
?1110010??010 0000001001110100 IN A,ib
?1110110??110 0000001001111001 IN A,DX
?1110110??010 0000001001111010 IN A,DX
?0110110?0110 0000001001111111 INS
?0110110?0010 0000001010000001 INS
?0110110?1110 0000001010001010 REP INS
?0110110?1010 0000001010001011 REP INS
?1110011??110 0000001010011011 OUT ib,A
?1110011??010 0000001010011101 OUT ib,A
?1110111??110 0000001010100001 OUT DX,A
?1110111??010 0000001010100010 OUT DX,A
?0110111?0110 0000001010100111 OUTS
?0110111?0010 0000001010101001 OUTS
?0110111?1110 0000001010110001 REP OUTS
?0110111?1010 0000001010110010 REP OUTS
?10011010??10 0010001011010110 CALL cp
?11101010??10 0000001011100101 JMP cp
?1100101???10 0011001011111100 RETF/RETF iw
011001000??10 0010001100000100 ENTER
111001000??10 0010001100001000 ENTER
011001001??10 0000001100011111 LEAVE
111001001??10 0000001100100011 LEAVE
?11110100??10 0000001100100111 HLT
?10011011??10 0000001110111101 WAIT
?11001111?110 0011011001110011 IRETd
?11110101??10 0000011111101111 CMC
?11111?0???10 0000011111101111 CLC/STC/CLD/STD
?10011100?110 0010011111110010 PUSHFd
?1111101???10 0000011111110111 CLI/STI
?10011100?010 0010011111111001 PUSHFd
?10011101?010 0011011111111011 POPFd
?11001101?010 0000011111111101 INT ib
?11001111?010 0011011111111111 IRETd
?10011101?110 0011100000000011 POPFd
?11001101?110 0000100000001000 INT ib
?11001100??10 0000100000010110 INT 3
?11001110??10 0000100000100111 INTO
?0000010???11 0000100000101011 illegal? LOADALL286
?00001000??11 0000100000101011 illegal?
?000011????11 0000100000101011 illegal?
?00101?00??11 0000100000101011 illegal?
?0010?1?1??11 0000100000101011 illegal?
?001100000?11 0000100000101011 illegal?
?00110001??11 0000100000101011 illegal?
?0011001???11 0000100000101011 illegal?
?00?01001??11 0000100000101011 illegal?
?00?0101???11 0000100000101011 illegal?
?00?101????11 0000100000101011 illegal?
?00?11?????11 0000100000101011 illegal?
?010??0000011 0000100000101011 illegal?
?010??0010?11 0000100000101011 illegal?
?010???000111 0000100000101011 illegal?
?010??01?0?11 0000100000101011 illegal?
?010??1100111 0000100000101011 illegal?
?010??1?00011 0000100000101011 illegal?
?010??1?10?11 0000100000101011 illegal?
?010???011?11 0000100000101011 illegal?
?010???111?11 0000100000101011 illegal?
?010????01?11 0000100000101011 illegal?
?011??0001?11 0000100000101011 illegal?
?011??01???11 0000100000101011 illegal?
?011??1111?11 0000100000101011 illegal?
?011??11?0?11 0000100000101011 illegal?
?011??1?01?11 0000100000101011 illegal?
?011???000?11 0000100000101011 illegal?
?011???01??11 0000100000101011 illegal?
?1010?010??11 0000100000101011 illegal?
?101100000?11 0000100000101011 illegal?
?10111000??11 0000100000101011 illegal?
?1011?001??11 0000100000101011 illegal?
?11000001??11 0000100000101011 illegal?
?11001001??11 0000100000101011 illegal?
?1100?101??11 0000100000101011 illegal?
?1101??01??11 0000100000101011 illegal?
?111??001??11 0000100000101011 illegal?
?111??101??11 0000100000101011 illegal?
?11???0001?11 0000100000101011 illegal?
?11???01???11 0000100000101011 illegal?
?11???1111?11 0000100000101011 illegal?
?11???11?0?11 0000100000101011 illegal?
?11???1?01?11 0000100000101011 illegal?
?11????000?11 0000100000101011 illegal?
??0101110??11 0000100000101011 illegal?
??01100001?11 0000100000101011 illegal?
?00000111??11 0000100011110110 LOADALL386
?11110001??10 0000100100111100 ICEBP
Bits 1-8 opcode
Bit 12 = 0F prefix present
Bit 11 = this is an instruction?
Bit 10 = protected mode?
Bit 9 = repeat flag present
Bit 0 = 32 bit mode?