1
0
mirror of https://github.com/bitdefender/bddisasm.git synced 2024-12-22 22:18:09 +00:00
bddisasm/isagenerator/instructions/table_base.dat
BITDEFENDER\vlutas 9ba1e6a2f9 Added support for new Intel instructions, per Intel ISA extensions document #319433-046 (September 2022): PREFETCHITI, RAO-INT, CMPCCXADD, WRMSRNS, MSRLIST, AMX-FP16, AVX-IFMA, AVX-NE-CONVERT, AVX-VNNI-INT8.
Multiple minor fixes to existing instructions.
Moved x86 decoding tests in a separate directory & improved the test script.
2022-10-04 12:22:59 +03:00

448 lines
48 KiB
Plaintext

# Mnemonic Explicit Implicit Encoding s:set, t:type, c:class, a:flags, p:prefixes, w:operands access, f:flags access, i:cpuid, m:valid cpu modes
#------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# 0x00 - 0x0F
ADD Eb,Gb Fv [ 0x00 /r] s:I86, t:ARITH, w:RW|R|W, f:ARITH, p:HLE|LOCK
ADD Ev,Gv Fv [ 0x01 /r] s:I86, t:ARITH, w:RW|R|W, f:ARITH, p:HLE|LOCK
ADD Gb,Eb Fv [ 0x02 /r] s:I86, t:ARITH, w:RW|R|W, f:ARITH
ADD Gv,Ev Fv [ 0x03 /r] s:I86, t:ARITH, w:RW|R|W, f:ARITH
ADD AL,Ib Fv [ 0x04 ib] s:I86, t:ARITH, w:RW|R|W, f:ARITH
ADD rAX,Iz Fv [ 0x05 iz] s:I86, t:ARITH, w:RW|R|W, f:ARITH, a:OP2SEXO1
PUSH ES Kv [ 0x06] s:I86, t:PUSH, w:R|W, m:NO64|NOSGX
POP ES Kv [ 0x07] s:I86, t:POP, w:W|R, m:NO64|NOSGX
OR Eb,Gb Fv [ 0x08 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
OR Ev,Gv Fv [ 0x09 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
OR Gb,Eb Fv [ 0x0A /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
OR Gv,Ev Fv [ 0x0B /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
OR AL,Ib Fv [ 0x0C ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
OR rAX,Iz Fv [ 0x0D iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1
PUSH CS Kv [ 0x0E] s:I86, t:PUSH, w:R|W, m:NO64|NOSGX
# 0x10 - 0x1F
ADC Eb,Gb Fv [ 0x10 /r] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, p:HLE|LOCK
ADC Ev,Gv Fv [ 0x11 /r] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, p:HLE|LOCK
ADC Gb,Eb Fv [ 0x12 /r] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC
ADC Gv,Ev Fv [ 0x13 /r] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC
ADC AL,Ib Fv [ 0x14 ib] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC
ADC rAX,Iz Fv [ 0x15 iz] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, a:OP2SEXO1
PUSH SS Kv [ 0x16] s:I86, t:PUSH, w:R|W, m:NO64|NOSGX
POP SS Kv [ 0x17] s:I86, t:POP, w:W|R, m:NO64|NOSGX
SBB Eb,Gb Fv [ 0x18 /r] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, p:HLE|LOCK
SBB Ev,Gv Fv [ 0x19 /r] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, p:HLE|LOCK
SBB Gb,Eb Fv [ 0x1A /r] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC
SBB Gv,Ev Fv [ 0x1B /r] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC
SBB AL,Ib Fv [ 0x1C ib] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC
SBB rAX,Iz Fv [ 0x1D iz] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, a:OP2SEXO1
PUSH DS Kv [ 0x1E] s:I86, t:PUSH, w:R|W, m:NO64|NOSGX
POP DS Kv [ 0x1F] s:I86, t:POP, w:W|R, m:NO64|NOSGX
# 0x20 - 0x2F
AND Eb,Gb Fv [ 0x20 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
AND Ev,Gv Fv [ 0x21 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
AND Gb,Eb Fv [ 0x22 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
AND Gv,Ev Fv [ 0x23 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
AND AL,Ib Fv [ 0x24 ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
AND rAX,Iz Fv [ 0x25 iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1
es nil nil [ 0x26] s:UNKNOWN, t:UNKNOWN, a:PREFIX
DAA nil AL,Fv [ 0x27] s:I86, t:DECIMAL, w:RW|RW, f:DAAS, m:NO64
SUB Eb,Gb Fv [ 0x28 /r] s:I86, t:ARITH, w:RW|R|W, f:ARITH, p:HLE|LOCK
SUB Ev,Gv Fv [ 0x29 /r] s:I86, t:ARITH, w:RW|R|W, f:ARITH, p:HLE|LOCK
SUB Gb,Eb Fv [ 0x2A /r] s:I86, t:ARITH, w:RW|R|W, f:ARITH
SUB Gv,Ev Fv [ 0x2B /r] s:I86, t:ARITH, w:RW|R|W, f:ARITH
SUB AL,Ib Fv [ 0x2C ib] s:I86, t:ARITH, w:RW|R|W, f:ARITH
SUB rAX,Iz Fv [ 0x2D iz] s:I86, t:ARITH, w:RW|R|W, f:ARITH, a:OP2SEXO1
cs nil nil [ 0x2E] s:UNKNOWN, t:UNKNOWN, a:PREFIX
BHNT nil nil [ 0x2E] s:UNKNOWN, t:UNKNOWN, a:PREFIX
DAS nil AL,Fv [ 0x2F] s:I86, t:DECIMAL, w:RW|RW, f:DAAS|SF=m, m:NO64
# 0x30 - 0x3F
XOR Eb,Gb Fv [ 0x30 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
XOR Ev,Gv Fv [ 0x31 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
XOR Gb,Eb Fv [ 0x32 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
XOR Gv,Ev Fv [ 0x33 /r] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
XOR AL,Ib Fv [ 0x34 ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC
XOR rAX,Iz Fv [ 0x35 iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1
ss nil nil [ 0x36] s:UNKNOWN, t:UNKNOWN, a:PREFIX
AAA nil AH,AL,Fv [ 0x37] s:I86, t:DECIMAL, w:RW|RW|RW, f:AAAS, m:NO64
CMP Eb,Gb Fv [ 0x38 /r] s:I86, t:ARITH, w:R|R|W, f:ARITH
CMP Ev,Gv Fv [ 0x39 /r] s:I86, t:ARITH, w:R|R|W, f:ARITH
CMP Gb,Eb Fv [ 0x3A /r] s:I86, t:ARITH, w:R|R|W, f:ARITH
CMP Gv,Ev Fv [ 0x3B /r] s:I86, t:ARITH, w:R|R|W, f:ARITH
CMP AL,Ib Fv [ 0x3C ib] s:I86, t:ARITH, w:R|R|W, f:ARITH
CMP rAX,Iz Fv [ 0x3D iz] s:I86, t:ARITH, w:R|R|W, f:ARITH, a:OP2SEXO1
ds nil nil [ 0x3E] s:UNKNOWN, t:UNKNOWN, a:PREFIX
BHT nil nil [ 0x3E] s:UNKNOWN, t:UNKNOWN, a:PREFIX
AAS nil AH,AL,Fv [ 0x3F] s:I86, t:DECIMAL, w:RW|RW|RW, f:AAAS, m:NO64
# 0x40 - 0x4F
INC Zv Fv [ 0x40] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
INC Zv Fv [ 0x41] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
INC Zv Fv [ 0x42] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
INC Zv Fv [ 0x43] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
INC Zv Fv [ 0x44] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
INC Zv Fv [ 0x45] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
INC Zv Fv [ 0x46] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
INC Zv Fv [ 0x47] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
DEC Zv Fv [ 0x48] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
DEC Zv Fv [ 0x49] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
DEC Zv Fv [ 0x4A] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
DEC Zv Fv [ 0x4B] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
DEC Zv Fv [ 0x4C] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
DEC Zv Fv [ 0x4D] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
DEC Zv Fv [ 0x4E] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
DEC Zv Fv [ 0x4F] s:I86, t:ARITH, w:RW|W, f:INCDEC, m:NO64
# 0x50 - 0x5F
PUSH Zv Kv [ 0x50] s:I86, t:PUSH, w:R|W, a:D64
PUSH Zv Kv [ 0x51] s:I86, t:PUSH, w:R|W, a:D64
PUSH Zv Kv [ 0x52] s:I86, t:PUSH, w:R|W, a:D64
PUSH Zv Kv [ 0x53] s:I86, t:PUSH, w:R|W, a:D64
PUSH Zv Kv [ 0x54] s:I86, t:PUSH, w:R|W, a:D64
PUSH Zv Kv [ 0x55] s:I86, t:PUSH, w:R|W, a:D64
PUSH Zv Kv [ 0x56] s:I86, t:PUSH, w:R|W, a:D64
PUSH Zv Kv [ 0x57] s:I86, t:PUSH, w:R|W, a:D64
POP Zv Kv [ 0x58] s:I86, t:POP, w:W|R, a:D64
POP Zv Kv [ 0x59] s:I86, t:POP, w:W|R, a:D64
POP Zv Kv [ 0x5A] s:I86, t:POP, w:W|R, a:D64
POP Zv Kv [ 0x5B] s:I86, t:POP, w:W|R, a:D64
POP Zv Kv [ 0x5C] s:I86, t:POP, w:W|R, a:D64
POP Zv Kv [ 0x5D] s:I86, t:POP, w:W|R, a:D64
POP Zv Kv [ 0x5E] s:I86, t:POP, w:W|R, a:D64
POP Zv Kv [ 0x5F] s:I86, t:POP, w:W|R, a:D64
# 0x60 - 0x6F
PUSHA nil BANK,Kv8 [ ds16 0x60] s:I386, t:PUSH, w:R|W, m:NO64
PUSHAD nil BANK,Kv8 [ ds32 0x60] s:I386, t:PUSH, w:R|W, m:NO64
POPA nil BANK,Kv8 [ ds16 0x61] s:I386, t:POP, w:W|R, m:NO64
POPAD nil BANK,Kv8 [ ds32 0x61] s:I386, t:POP, w:W|R, m:NO64
BOUND Gv,Ma nil [ 0x62 /r:mem] s:I186, t:INTERRUPT, w:R|R, m:NO64
ARPL Ew,Gw Fv [ 0x63 /r] s:I286PROT, t:SYSTEM, w:RW|R|W, f:ZF=m, m:NOREAL|NO64
MOVSXD Gv,Ez nil [ o64 0x63 /r] s:LONGMODE, t:DATAXFER, w:W|R, m:O64
fs nil nil [ 0x64] s:UNKNOWN, t:UNKNOWN, a:PREFIX
BHALT nil nil [ 0x64] s:UNKNOWN, t:UNKNOWN, a:PREFIX
gs nil nil [ 0x65] s:UNKNOWN, t:UNKNOWN, a:PREFIX
size nil nil [ 0x66] s:UNKNOWN, t:UNKNOWN, a:PREFIX
addr nil nil [ 0x67] s:UNKNOWN, t:UNKNOWN, a:PREFIX
PUSH Iz Kv [ 0x68 iz] s:I86, t:PUSH, w:R|W, a:D64|OP1SEXDW
IMUL Gv,Ev,Iz Fv [ 0x69 /r iz] s:I86, t:ARITH, w:W|R|R|W, f:MUL, a:OP3SEXO1
PUSH Ib Kv [ 0x6A ib] s:I86, t:PUSH, w:R|W, a:D64|OP1SEXDW
IMUL Gv,Ev,Ib Fv [ 0x6B /r ib] s:I86, t:ARITH, w:W|R|R|W, f:MUL, a:OP3SEXO1
INSB Yb,DX aDI,Fv [ 0x6C] s:I86, t:IOSTRINGOP, c:INS, w:W|R|RW|R, f:IOS, a:OP1DEF|OP2DEF, p:REP, m:NOSGX
INSB Yb,DX aCX,aDI,Fv [ rep 0x6C] s:I86, t:IOSTRINGOP, c:INS, w:CW|R|RCW|RCW|R, f:IOS, a:OP1DEF|OP2DEF, p:REP, m:NOSGX
INSW Yz,DX aDI,Fv [ ds16 0x6D] s:I86, t:IOSTRINGOP, c:INS, w:W|R|RW|R, f:IOS, a:OP1DEF|OP2DEF, p:REP, m:NOSGX
INSW Yz,DX aCX,aDI,Fv [ rep ds16 0x6D] s:I86, t:IOSTRINGOP, c:INS, w:CW|R|RCW|RCW|R, f:IOS, a:OP1DEF|OP2DEF, p:REP, m:NOSGX
INSD Yz,DX aDI,Fv [ 0x6D] s:I86, t:IOSTRINGOP, c:INS, w:W|R|RW|R, f:IOS, a:OP1DEF|OP2DEF, p:REP, m:NOSGX
INSD Yz,DX aCX,aDI,Fv [ rep 0x6D] s:I86, t:IOSTRINGOP, c:INS, w:CW|R|RCW|RCW|R, f:IOS, a:OP1DEF|OP2DEF, p:REP, m:NOSGX
OUTSB DX,Xb aSI,Fv [ 0x6E] s:I86, t:IOSTRINGOP, c:OUTS, w:R|R|RW|R, f:IOS, a:OP1DEF|OP2DEF|SERIAL, p:REP, m:NOSGX
OUTSB DX,Xb aCX,aSI,Fv [ rep 0x6E] s:I86, t:IOSTRINGOP, c:OUTS, w:R|CR|RCW|RCW|R, f:IOS, a:OP1DEF|OP2DEF|SERIAL, p:REP, m:NOSGX
OUTSW DX,Xz aSI,Fv [ ds16 0x6F] s:I86, t:IOSTRINGOP, c:OUTS, w:R|R|RW|R, f:IOS, a:OP1DEF|OP2DEF|SERIAL, p:REP, m:NOSGX
OUTSW DX,Xz aCX,aSI,Fv [ rep ds16 0x6F] s:I86, t:IOSTRINGOP, c:OUTS, w:R|CR|RCW|RCW|R, f:IOS, a:OP1DEF|OP2DEF|SERIAL, p:REP, m:NOSGX
OUTSD DX,Xz aSI,Fv [ 0x6F] s:I86, t:IOSTRINGOP, c:OUTS, w:R|R|RW|R, f:IOS, a:OP1DEF|OP2DEF|SERIAL, p:REP, m:NOSGX
OUTSD DX,Xz aCX,aSI,Fv [ rep 0x6F] s:I86, t:IOSTRINGOP, c:OUTS, w:R|CR|RCW|RCW|R, f:IOS, a:OP1DEF|OP2DEF|SERIAL, p:REP, m:NOSGX
# 0x70 - 0x7F
JO Jb rIP,Fv [ 0x70 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CO, a:F64|COND, p:BND|BH
JNO Jb rIP,Fv [ 0x71 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNO, a:F64|COND, p:BND|BH
JC Jb rIP,Fv [ 0x72 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CC, a:F64|COND, p:BND|BH
JNC Jb rIP,Fv [ 0x73 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNC, a:F64|COND, p:BND|BH
JZ Jb rIP,Fv [ 0x74 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CZ, a:F64|COND, p:BND|BH
JNZ Jb rIP,Fv [ 0x75 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNZ, a:F64|COND, p:BND|BH
JBE Jb rIP,Fv [ 0x76 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CBE, a:F64|COND, p:BND|BH
JNBE Jb rIP,Fv [ 0x77 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNBE, a:F64|COND, p:BND|BH
JS Jb rIP,Fv [ 0x78 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CS, a:F64|COND, p:BND|BH
JNS Jb rIP,Fv [ 0x79 cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNS, a:F64|COND, p:BND|BH
JP Jb rIP,Fv [ 0x7A cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CP, a:F64|COND, p:BND|BH
JNP Jb rIP,Fv [ 0x7B cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNP, a:F64|COND, p:BND|BH
JL Jb rIP,Fv [ 0x7C cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CL, a:F64|COND, p:BND|BH
JNL Jb rIP,Fv [ 0x7D cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNL, a:F64|COND, p:BND|BH
JLE Jb rIP,Fv [ 0x7E cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CLE, a:F64|COND, p:BND|BH
JNLE Jb rIP,Fv [ 0x7F cb] s:I86, t:COND_BR, c:Jcc, w:R|CRCW|R, f:CNLE, a:F64|COND, p:BND|BH
# 0x80 - 0x8F
ADD Eb,Ib Fv [ 0x80 /0 ib] s:I86, t:ARITH, w:RW|R|W, f:ARITH, p:HLE|LOCK
OR Eb,Ib Fv [ 0x80 /1 ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
ADC Eb,Ib Fv [ 0x80 /2 ib] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, p:HLE|LOCK
SBB Eb,Ib Fv [ 0x80 /3 ib] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, p:HLE|LOCK
AND Eb,Ib Fv [ 0x80 /4 ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
SUB Eb,Ib Fv [ 0x80 /5 ib] s:I86, t:ARITH, w:RW|R|W, f:ARITH, p:HLE|LOCK
XOR Eb,Ib Fv [ 0x80 /6 ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, p:HLE|LOCK
CMP Eb,Ib Fv [ 0x80 /7 ib] s:I86, t:ARITH, w:R|R|W, f:ARITH
ADD Ev,Iz Fv [ 0x81 /0 iz] s:I86, t:ARITH, w:RW|R|W, f:ARITH, a:OP2SEXO1, p:HLE|LOCK
OR Ev,Iz Fv [ 0x81 /1 iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, p:HLE|LOCK
ADC Ev,Iz Fv [ 0x81 /2 iz] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, a:OP2SEXO1, p:HLE|LOCK
SBB Ev,Iz Fv [ 0x81 /3 iz] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, a:OP2SEXO1, p:HLE|LOCK
AND Ev,Iz Fv [ 0x81 /4 iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, p:HLE|LOCK
SUB Ev,Iz Fv [ 0x81 /5 iz] s:I86, t:ARITH, w:RW|R|W, f:ARITH, a:OP2SEXO1, p:HLE|LOCK
XOR Ev,Iz Fv [ 0x81 /6 iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, p:HLE|LOCK
CMP Ev,Iz Fv [ 0x81 /7 iz] s:I86, t:ARITH, w:R|R|W, f:ARITH, a:OP2SEXO1
ADD Eb,Ib Fv [ 0x82 /0 iz] s:I86, t:ARITH, w:RW|R|W, f:ARITH, a:OP2SEXO1, m:NO64, p:HLE|LOCK
OR Eb,Ib Fv [ 0x82 /1 iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, m:NO64, p:HLE|LOCK
ADC Eb,Ib Fv [ 0x82 /2 iz] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, a:OP2SEXO1, m:NO64, p:HLE|LOCK
SBB Eb,Ib Fv [ 0x82 /3 iz] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, a:OP2SEXO1, m:NO64, p:HLE|LOCK
AND Eb,Ib Fv [ 0x82 /4 iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, m:NO64, p:HLE|LOCK
SUB Eb,Ib Fv [ 0x82 /5 iz] s:I86, t:ARITH, w:RW|R|W, f:ARITH, a:OP2SEXO1, m:NO64, p:HLE|LOCK
XOR Eb,Ib Fv [ 0x82 /6 iz] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, m:NO64, p:HLE|LOCK
CMP Eb,Ib Fv [ 0x82 /7 iz] s:I86, t:ARITH, w:R|R|W, f:ARITH, a:OP2SEXO1, m:NO64
ADD Ev,Ib Fv [ 0x83 /0 ib] s:I86, t:ARITH, w:RW|R|W, f:ARITH, a:OP2SEXO1, p:HLE|LOCK
OR Ev,Ib Fv [ 0x83 /1 ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, p:HLE|LOCK
ADC Ev,Ib Fv [ 0x83 /2 ib] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, a:OP2SEXO1, p:HLE|LOCK
SBB Ev,Ib Fv [ 0x83 /3 ib] s:I86, t:ARITH, w:RW|R|RW, f:ARITHC, a:OP2SEXO1, p:HLE|LOCK
AND Ev,Ib Fv [ 0x83 /4 ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, p:HLE|LOCK
SUB Ev,Ib Fv [ 0x83 /5 ib] s:I86, t:ARITH, w:RW|R|W, f:ARITH, a:OP2SEXO1, p:HLE|LOCK
XOR Ev,Ib Fv [ 0x83 /6 ib] s:I86, t:LOGIC, w:RW|R|W, f:LOGIC, a:OP2SEXO1, p:HLE|LOCK
CMP Ev,Ib Fv [ 0x83 /7 ib] s:I86, t:ARITH, w:R|R|W, f:ARITH, a:OP2SEXO1
TEST Eb,Gb Fv [ 0x84 /r] s:I86, t:LOGIC, w:R|R|W, f:LOGIC
TEST Ev,Gv Fv [ 0x85 /r] s:I86, t:LOGIC, w:R|R|W, f:LOGIC
XCHG Eb,Gb nil [ 0x86 /r] s:I86, t:DATAXFER, w:RW|RW, p:HLE|LOCK|HLEWOL
XCHG Ev,Gv nil [ 0x87 /r] s:I86, t:DATAXFER, w:RW|RW, p:HLE|LOCK|HLEWOL
MOV Eb,Gb nil [ 0x88 /r] s:I86, t:DATAXFER, w:W|R, p:XRELEASE|HLEWOL
MOV Ev,Gv nil [ 0x89 /r] s:I86, t:DATAXFER, w:W|R, p:XRELEASE|HLEWOL
MOV Gb,Eb nil [ 0x8A /r] s:I86, t:DATAXFER, w:W|R
MOV Gv,Ev nil [ 0x8B /r] s:I86, t:DATAXFER, w:W|R
MOV Mw,Sw nil [ 0x8C /r:mem] s:I86, t:DATAXFER, w:W|R
MOV Rv,Sw nil [ 0x8C /r:reg] s:I86, t:DATAXFER, w:W|R
LEA Gv,M0 nil [ 0x8D /r:mem] s:I86, t:MISC, w:W|N, a:AG
MOV Sw,Mw nil [ 0x8E /r:mem] s:I86, t:DATAXFER, w:W|R
MOV Sw,Rv nil [ 0x8E /r:reg] s:I86, t:DATAXFER, w:W|R
POP Ev Kv [ 0x8F /0] s:I86, t:POP, w:W|R, a:D64
# 0x90 - 0x9F
NOP nil nil [ 0x90] s:I86, t:NOP,
PAUSE nil nil [ a0xF3 0x90] s:PAUSE, t:MISC, m:NOTSX
XCHG Zv,rAX nil [ rexb 0x90] s:I86, t:DATAXFER, w:RW|RW
XCHG Zv,rAX nil [ 0x91] s:I86, t:DATAXFER, w:RW|RW
XCHG Zv,rAX nil [ 0x92] s:I86, t:DATAXFER, w:RW|RW
XCHG Zv,rAX nil [ 0x93] s:I86, t:DATAXFER, w:RW|RW
XCHG Zv,rAX nil [ 0x94] s:I86, t:DATAXFER, w:RW|RW
XCHG Zv,rAX nil [ 0x95] s:I86, t:DATAXFER, w:RW|RW
XCHG Zv,rAX nil [ 0x96] s:I86, t:DATAXFER, w:RW|RW
XCHG Zv,rAX nil [ 0x97] s:I86, t:DATAXFER, w:RW|RW
CBW nil AX,AL [ ds16 0x98] s:I386, t:CONVERT, w:W|R
CWDE nil EAX,AX [ ds32 0x98] s:I386, t:CONVERT, w:W|R
CDQE nil RAX,EAX [ ds64 0x98] s:I386, t:CONVERT, w:W|R
CWD nil DX,AX [ ds16 0x99] s:I386, t:CONVERT, w:W|R
CDQ nil EDX,EAX [ ds32 0x99] s:I386, t:CONVERT, w:W|R
CQO nil RDX,RAX [ ds64 0x99] s:I386, t:CONVERT, w:W|R
CALLF Ap CS,rIP,Kv2,SHS2 [ 0x9A cp] s:I86, t:CALL, c:CALLFD, w:R|RW|W|W|W, m:NO64|NOSGX
WAIT nil nil [ 0x9B] s:X87, t:X87_ALU
PUSHFW Fv Kv [ ds16 0x9C] s:I86, t:PUSH, c:PUSHF, w:R|W, a:D64
PUSHFD Fv Kv [ ds32 0x9C] s:I86, t:PUSH, c:PUSHF, w:R|W, a:D64
PUSHFQ Fv Kv [ dds64 0x9C] s:I86, t:PUSH, c:PUSHF, w:R|W, a:D64
POPFW Fv Kv [ ds16 0x9D] s:I86, t:POP, c:POPF, w:W|R , a:D64
POPFD Fv Kv [ ds32 0x9D] s:I86, t:POP, c:POPF, w:W|R , a:D64
POPFQ Fv Kv [ dds64 0x9D] s:I86, t:POP, c:POPF, w:W|R , a:D64
SAHF nil AH,Fv [ 0x9E] s:I86, t:FLAGOP, w:R|W, f:CF=m|PF=m|AF=m|ZF=m|SF=m
LAHF nil AH,Fv [ 0x9F] s:I86, t:FLAGOP, w:W|R, f:CF=t|PF=t|AF=t|ZF=t|SF=t
# 0xA0 - 0xAF
MOV AL,Ob nil [ 0xA0] s:I86, t:DATAXFER, w:W|R
MOV rAX,Ov nil [ 0xA1] s:I86, t:DATAXFER, w:W|R
MOV Ob,AL nil [ 0xA2] s:I86, t:DATAXFER, w:W|R
MOV Ov,rAX nil [ 0xA3] s:I86, t:DATAXFER, w:W|R
MOVSB Yb,Xb aSI,aDI,Fv [ 0xA4] s:I86, t:STRINGOP, c:MOVS, w:W|R|RW|RW|R, f:DF=t, a:OP1DEF|OP2DEF, p:REP
MOVSB Yb,Xb aCX,aSI,aDI,Fv [ rep 0xA4] s:I86, t:STRINGOP, c:MOVS, w:CW|CR|RCW|RCW|RCW|RW, f:DF=t, a:OP1DEF|OP2DEF, p:REP
MOVSW Yv,Xv aSI,aDI,Fv [ ds16 0xA5] s:I86, t:STRINGOP, c:MOVS, w:W|R|RW|RW|R, f:DF=t, a:OP1DEF|OP2DEF, p:REP
MOVSW Yv,Xv aCX,aSI,aDI,Fv [ rep ds16 0xA5] s:I86, t:STRINGOP, c:MOVS, w:CW|CR|RCW|RCW|RCW|RW, f:DF=t, a:OP1DEF|OP2DEF, p:REP
MOVSD Yv,Xv aSI,aDI,Fv [ ds32 0xA5] s:I86, t:STRINGOP, c:MOVS, w:W|R|RW|RW|R, f:DF=t, a:OP1DEF|OP2DEF, p:REP
MOVSD Yv,Xv aCX,aSI,aDI,Fv [ rep ds32 0xA5] s:I86, t:STRINGOP, c:MOVS, w:CW|CR|RCW|RCW|RCW|RW, f:DF=t, a:OP1DEF|OP2DEF, p:REP
MOVSQ Yv,Xv aSI,aDI,Fv [ ds64 0xA5] s:I86, t:STRINGOP, c:MOVS, w:W|R|RW|RW|R, f:DF=t, a:OP1DEF|OP2DEF, p:REP
MOVSQ Yv,Xv aCX,aSI,aDI,Fv [ rep ds64 0xA5] s:I86, t:STRINGOP, c:MOVS, w:CW|CR|RCW|RCW|RCW|RW, f:DF=t, a:OP1DEF|OP2DEF, p:REP
CMPSB Xb,Yb aSI,aDI,Fv [ 0xA6] s:I86, t:STRINGOP, c:CMPS, w:R|R|RW|RW|R, f:CMPS, a:OP1DEF|OP2DEF, p:REPC
CMPSB Xb,Yb aCX,aSI,aDI,Fv [ rep 0xA6] s:I86, t:STRINGOP, c:CMPS, w:CR|CR|RCW|RCW|RCW|RW, f:REPCMPS, a:OP1DEF|OP2DEF, p:REPC
CMPSW Xv,Yv aSI,aDI,Fv [ ds16 0xA7] s:I86, t:STRINGOP, c:CMPS, w:R|R|RW|RW|R, f:CMPS, a:OP1DEF|OP2DEF, p:REPC
CMPSW Xv,Yv aCX,aSI,aDI,Fv [ rep ds16 0xA7] s:I86, t:STRINGOP, c:CMPS, w:CR|CR|RCW|RCW|RCW|RW, f:REPCMPS, a:OP1DEF|OP2DEF, p:REPC
CMPSD Xv,Yv aSI,aDI,Fv [ ds32 0xA7] s:I86, t:STRINGOP, c:CMPS, w:R|R|RW|RW|R, f:CMPS, a:OP1DEF|OP2DEF, p:REPC
CMPSD Xv,Yv aCX,aSI,aDI,Fv [ rep ds32 0xA7] s:I86, t:STRINGOP, c:CMPS, w:CR|CR|RCW|RCW|RCW|RW, f:REPCMPS, a:OP1DEF|OP2DEF, p:REPC
CMPSQ Xv,Yv aSI,aDI,Fv [ ds64 0xA7] s:I86, t:STRINGOP, c:CMPS, w:R|R|RW|RW|R, f:CMPS, a:OP1DEF|OP2DEF, p:REPC
CMPSQ Xv,Yv aCX,aSI,aDI,Fv [ rep ds64 0xA7] s:I86, t:STRINGOP, c:CMPS, w:CR|CR|RCW|RCW|RCW|RW, f:REPCMPS, a:OP1DEF|OP2DEF, p:REPC
TEST AL,Ib Fv [ 0xA8 ib] s:I86, t:LOGIC, w:R|R|W, f:LOGIC
TEST rAX,Iz Fv [ 0xA9 iz] s:I86, t:LOGIC, w:R|R|W, f:LOGIC, a:OP2SEXO1
STOSB Yb,AL aDI,Fv [ 0xAA] s:I86, t:STRINGOP, c:STOS, w:W|R|RW|R, f:DF=t , a:OP1DEF|OP2DEF, p:REP
STOSB Yb,AL aCX,aDI,Fv [ rep 0xAA] s:I86, t:STRINGOP, c:STOS, w:CW|R|RCW|RCW|RW, f:DF=t , a:OP1DEF|OP2DEF, p:REP
STOSW Yv,AX aDI,Fv [ ds16 0xAB] s:I86, t:STRINGOP, c:STOS, w:W|R|RW|R, f:DF=t , a:OP1DEF|OP2DEF, p:REP
STOSW Yv,AX aCX,aDI,Fv [ rep ds16 0xAB] s:I86, t:STRINGOP, c:STOS, w:CW|R|RCW|RCW|RW, f:DF=t , a:OP1DEF|OP2DEF, p:REP
STOSD Yv,EAX aDI,Fv [ ds32 0xAB] s:I86, t:STRINGOP, c:STOS, w:W|R|RW|R, f:DF=t , a:OP1DEF|OP2DEF, p:REP
STOSD Yv,EAX aCX,aDI,Fv [ rep ds32 0xAB] s:I86, t:STRINGOP, c:STOS, w:CW|R|RCW|RCW|RW, f:DF=t , a:OP1DEF|OP2DEF, p:REP
STOSQ Yv,RAX aDI,Fv [ ds64 0xAB] s:I86, t:STRINGOP, c:STOS, w:W|R|RW|R, f:DF=t , a:OP1DEF|OP2DEF, p:REP
STOSQ Yv,RAX aCX,aDI,Fv [ rep ds64 0xAB] s:I86, t:STRINGOP, c:STOS, w:CW|R|RCW|RCW|RW, f:DF=t , a:OP1DEF|OP2DEF, p:REP
LODSB AL,Xb aSI,Fv [ 0xAC] s:I86, t:STRINGOP, c:LODS, w:W|R|RW|R, f:DF=t , a:OP1DEF|OP2DEF, p:REP
LODSB AL,Xb aCX,aSI,Fv [ rep 0xAC] s:I86, t:STRINGOP, c:LODS, w:CW|CR|RCW|RCW|RW, f:DF=t, a:OP1DEF|OP2DEF, p:REP
LODSW AX,Xv aSI,Fv [ ds16 0xAD] s:I86, t:STRINGOP, c:LODS, w:W|R|RW|R, f:DF=t , a:OP1DEF|OP2DEF, p:REP
LODSW AX,Xv aCX,aSI,Fv [ rep ds16 0xAD] s:I86, t:STRINGOP, c:LODS, w:CW|CR|RCW|RCW|RW, f:DF=t, a:OP1DEF|OP2DEF, p:REP
LODSD EAX,Xv aSI,Fv [ ds32 0xAD] s:I86, t:STRINGOP, c:LODS, w:W|R|RW|R, f:DF=t , a:OP1DEF|OP2DEF, p:REP
LODSD EAX,Xv aCX,aSI,Fv [ rep ds32 0xAD] s:I86, t:STRINGOP, c:LODS, w:CW|CR|RCW|RCW|RW, f:DF=t, a:OP1DEF|OP2DEF, p:REP
LODSQ RAX,Xv aSI,Fv [ ds64 0xAD] s:I86, t:STRINGOP, c:LODS, w:W|R|RW|R, f:DF=t , a:OP1DEF|OP2DEF, p:REP
LODSQ RAX,Xv aCX,aSI,Fv [ rep ds64 0xAD] s:I86, t:STRINGOP, c:LODS, w:CW|CR|RCW|RCW|RW, f:DF=t, a:OP1DEF|OP2DEF, p:REP
SCASB AL,Yb aDI,Fv [ 0xAE] s:I86, t:STRINGOP, c:SCAS, w:R|R|RW|RW, f:CMPS, a:OP1DEF|OP2DEF, p:REPC
SCASB AL,Yb aCX,aDI,Fv [ rep 0xAE] s:I86, t:STRINGOP, c:SCAS, w:R|CR|RCW|RCW|RW, f:REPCMPS, a:OP1DEF|OP2DEF, p:REPC
SCASW AX,Yv aDI,Fv [ ds16 0xAF] s:I86, t:STRINGOP, c:SCAS, w:R|R|RW|RW, f:CMPS, a:OP1DEF|OP2DEF, p:REPC
SCASW AX,Yv aCX,aDI,Fv [ rep ds16 0xAF] s:I86, t:STRINGOP, c:SCAS, w:R|CR|RCW|RCW|RW, f:REPCMPS, a:OP1DEF|OP2DEF, p:REPC
SCASD EAX,Yv aDI,Fv [ ds32 0xAF] s:I86, t:STRINGOP, c:SCAS, w:R|R|RW|RW, f:CMPS, a:OP1DEF|OP2DEF, p:REPC
SCASD EAX,Yv aCX,aDI,Fv [ rep ds32 0xAF] s:I86, t:STRINGOP, c:SCAS, w:R|CR|RCW|RCW|RW, f:REPCMPS, a:OP1DEF|OP2DEF, p:REPC
SCASQ RAX,Yv aDI,Fv [ ds64 0xAF] s:I86, t:STRINGOP, c:SCAS, w:R|R|RW|RW, f:CMPS, a:OP1DEF|OP2DEF, p:REPC
SCASQ RAX,Yv aCX,aDI,Fv [ rep ds64 0xAF] s:I86, t:STRINGOP, c:SCAS, w:R|CR|RCW|RCW|RW, f:REPCMPS, a:OP1DEF|OP2DEF, p:REPC
# 0xB0 - 0xBF
MOV Zb,Ib nil [ 0xB0 ib] s:I86, t:DATAXFER, w:W|R
MOV Zb,Ib nil [ 0xB1 ib] s:I86, t:DATAXFER, w:W|R
MOV Zb,Ib nil [ 0xB2 ib] s:I86, t:DATAXFER, w:W|R
MOV Zb,Ib nil [ 0xB3 ib] s:I86, t:DATAXFER, w:W|R
MOV Zb,Ib nil [ 0xB4 ib] s:I86, t:DATAXFER, w:W|R
MOV Zb,Ib nil [ 0xB5 ib] s:I86, t:DATAXFER, w:W|R
MOV Zb,Ib nil [ 0xB6 ib] s:I86, t:DATAXFER, w:W|R
MOV Zb,Ib nil [ 0xB7 ib] s:I86, t:DATAXFER, w:W|R
MOV Zv,Iv nil [ 0xB8 iv] s:I86, t:DATAXFER, w:W|R
MOV Zv,Iv nil [ 0xB9 iv] s:I86, t:DATAXFER, w:W|R
MOV Zv,Iv nil [ 0xBA iv] s:I86, t:DATAXFER, w:W|R
MOV Zv,Iv nil [ 0xBB iv] s:I86, t:DATAXFER, w:W|R
MOV Zv,Iv nil [ 0xBC iv] s:I86, t:DATAXFER, w:W|R
MOV Zv,Iv nil [ 0xBD iv] s:I86, t:DATAXFER, w:W|R
MOV Zv,Iv nil [ 0xBE iv] s:I86, t:DATAXFER, w:W|R
MOV Zv,Iv nil [ 0xBF iv] s:I86, t:DATAXFER, w:W|R
# 0xC0 - 0xCF
ROL Eb,Ib Fv [ 0xC0 /0 ib] s:I86, t:ROTATE, w:RW|R|W, f:ROT
ROR Eb,Ib Fv [ 0xC0 /1 ib] s:I86, t:ROTATE, w:RW|R|W, f:ROT
RCL Eb,Ib Fv [ 0xC0 /2 ib] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
RCR Eb,Ib Fv [ 0xC0 /3 ib] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
SHL Eb,Ib Fv [ 0xC0 /4 ib] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SHR Eb,Ib Fv [ 0xC0 /5 ib] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAL Eb,Ib Fv [ 0xC0 /6 ib] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAR Eb,Ib Fv [ 0xC0 /7 ib] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
ROL Ev,Ib Fv [ 0xC1 /0 ib] s:I86, t:ROTATE, w:RW|R|W, f:ROT
ROR Ev,Ib Fv [ 0xC1 /1 ib] s:I86, t:ROTATE, w:RW|R|W, f:ROT
RCL Ev,Ib Fv [ 0xC1 /2 ib] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
RCR Ev,Ib Fv [ 0xC1 /3 ib] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
SHL Ev,Ib Fv [ 0xC1 /4 ib] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SHR Ev,Ib Fv [ 0xC1 /5 ib] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAL Ev,Ib Fv [ 0xC1 /6 ib] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAR Ev,Ib Fv [ 0xC1 /7 ib] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
RETN Iw rIP,sSP,Kv,SHS1 [ 0xC2 iw] s:I86, t:RET, w:R|W|W|R|R, a:F64, p:BND
RETN nil rIP,Kv,SHS1 [ 0xC3] s:I86, t:RET, w:W|R|R, a:F64, p:BND
LES Gz,Mp ES [ 0xC4 /r:mem] s:I86, t:SEGOP, w:W|R|W, m:NO64|NOSGX
LDS Gz,Mp DS [ 0xC5 /r:mem] s:I86, t:SEGOP, w:W|R|W, m:NO64|NOSGX
MOV Eb,Ib nil [ 0xC6 /0 ib] s:I86, t:DATAXFER, w:W|R, p:XRELEASE|HLEWOL
XABORT Ib yIP,EAX [ 0xC6 /0xF8 ib] s:TSX, t:UNCOND_BR, w:R|W|RCW, i:RTM
MOV Ev,Iz nil [ 0xC7 /0 iz] s:I86, t:DATAXFER, w:W|R, a:OP2SEXO1, p:XRELEASE|HLEWOL
XBEGIN Jz yIP,EAX [ 0xC7 /0xF8 cz] s:TSX, t:COND_BR, w:R|RCW|CW, i:RTM
ENTER Iw,Ib rBP,sSP,Kv [ 0xC8 iw ib] s:I186, t:MISC, w:R|R|RW|RW|W, a:D64
LEAVE nil sBP,rBP,rSP,Kv [ 0xC9] s:I186, t:MISC, w:R|RW|RW|R, a:D64
RETF Iw CS,rIP,Kv2,SHS2 [ 0xCA iw] s:I86, t:RET, w:R|W|W|R|R
RETF nil CS,rIP,Kv2,SHS2 [ 0xCB] s:I86, t:RET, w:W|W|R|R
INT3 nil CS,rIP,Kv3,Fv,SHS3 [ 0xCC] s:I86, t:INTERRUPT, w:RW|RW|RW|W|W, a:CETT, f:INT, m:NOSGX
INT Ib CS,rIP,Kv3,Fv,SHS3 [ 0xCD ib] s:I86, t:INTERRUPT, w:R|RW|RW|RW|W|W, a:CETT, f:INT, m:NOSGX
INTO nil CS,rIP,Kv3,Fv,SHS3 [ 0xCE] s:I86, t:INTERRUPT, w:RW|RW|RW|W|W, a:CETT, f:INT, m:NO64|NOSGX
IRETW nil CS,rIP,Kv3,Fv,SHS3 [ ds16 0xCF] s:I86, t:RET, c:IRET, w:RW|W|R|RW|RW, a:SERIAL
IRETD nil CS,rIP,Kv3,Fv,SHS3 [ ds32 0xCF] s:I86, t:RET, c:IRET, w:RW|W|R|RW|RW, a:SERIAL
IRETQ nil CS,rIP,Kv3,Fv,SHS3 [ ds64 0xCF] s:I86, t:RET, c:IRET, w:RW|W|R|RW|RW, a:SERIAL
# 0xD0 - 0xDF
ROL Eb,1 Fv [ 0xD0 /0] s:I86, t:ROTATE, w:RW|R|W, f:ROT
ROR Eb,1 Fv [ 0xD0 /1] s:I86, t:ROTATE, w:RW|R|W, f:ROT
RCL Eb,1 Fv [ 0xD0 /2] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
RCR Eb,1 Fv [ 0xD0 /3] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
SHL Eb,1 Fv [ 0xD0 /4] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SHR Eb,1 Fv [ 0xD0 /5] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAL Eb,1 Fv [ 0xD0 /6] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAR Eb,1 Fv [ 0xD0 /7] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
ROL Ev,1 Fv [ 0xD1 /0] s:I86, t:ROTATE, w:RW|R|W, f:ROT
ROR Ev,1 Fv [ 0xD1 /1] s:I86, t:ROTATE, w:RW|R|W, f:ROT
RCL Ev,1 Fv [ 0xD1 /2] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
RCR Ev,1 Fv [ 0xD1 /3] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
SHL Ev,1 Fv [ 0xD1 /4] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SHR Ev,1 Fv [ 0xD1 /5] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAL Ev,1 Fv [ 0xD1 /6] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAR Ev,1 Fv [ 0xD1 /7] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
ROL Eb,CL Fv [ 0xD2 /0] s:I86, t:ROTATE, w:RW|R|W, f:ROT
ROR Eb,CL Fv [ 0xD2 /1] s:I86, t:ROTATE, w:RW|R|W, f:ROT
RCL Eb,CL Fv [ 0xD2 /2] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
RCR Eb,CL Fv [ 0xD2 /3] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
SHL Eb,CL Fv [ 0xD2 /4] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SHR Eb,CL Fv [ 0xD2 /5] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAL Eb,CL Fv [ 0xD2 /6] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAR Eb,CL Fv [ 0xD2 /7] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
ROL Ev,CL Fv [ 0xD3 /0] s:I86, t:ROTATE, w:RW|R|W, f:ROT
ROR Ev,CL Fv [ 0xD3 /1] s:I86, t:ROTATE, w:RW|R|W, f:ROT
RCL Ev,CL Fv [ 0xD3 /2] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
RCR Ev,CL Fv [ 0xD3 /3] s:I86, t:ROTATE, w:RW|R|RW, f:ROTC
SHL Ev,CL Fv [ 0xD3 /4] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SHR Ev,CL Fv [ 0xD3 /5] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAL Ev,CL Fv [ 0xD3 /6] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
SAR Ev,CL Fv [ 0xD3 /7] s:I86, t:SHIFT, w:RW|R|W, f:SHIFT
AAM Ib AL,AH,Fv [ 0xD4 ib] s:I86, t:DECIMAL, w:R|RW|W|W, f:AADM, m:NO64
AAD Ib AL,AH,Fv [ 0xD5 ib] s:I86, t:DECIMAL, w:R|RW|RW|W, f:AADM, m:NO64
SALC nil AL,Fv [ 0xD6] s:I86, t:FLAGOP, w:W|R, f:CF=t
XLATB nil AL,pBXALb [ 0xD7] s:I86, t:MISC, w:W|R
# 0xE0 - 0xEF
LOOPNZ Jb aCX,rIP,Fv [ 0xE0 cb] s:I86, t:COND_BR, w:R|RW|CRCW|R, f:ZF=t, a:F64
LOOPZ Jb aCX,rIP,Fv [ 0xE1 cb] s:I86, t:COND_BR, w:R|RW|CRCW|R, f:ZF=t, a:F64
LOOP Jb aCX,rIP,Fv [ 0xE2 cb] s:I86, t:COND_BR, w:R|RW|CRCW|R, a:F64
JCXZ Jb aCX,rIP [ as16 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|CRCW, a:F64
JECXZ Jb aCX,rIP [ as32 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|CRCW, a:F64
JRCXZ Jb aCX,rIP [ as64 0xE3 cb] s:I86, t:COND_BR, c:JrCXZ, w:R|R|CRCW, a:F64
IN AL,Ib Fv [ 0xE4 ib] s:I86, t:IO, w:W|R|R, f:IO, m:NOSGX
IN eAX,Ib Fv [ 0xE5 ib] s:I86, t:IO, w:W|R|R, f:IO, m:NOSGX
OUT Ib,AL Fv [ 0xE6 ib] s:I86, t:IO, w:R|R|R, f:IO, a:SERIAL, m:NOSGX
OUT Ib,eAX Fv [ 0xE7 ib] s:I86, t:IO, w:R|R|R, f:IO, a:SERIAL, m:NOSGX
CALL Jz rIP,Kv,SHS1 [ 0xE8 cz] s:I86, t:CALL, c:CALLNR, w:R|RW|W|W, a:F64, p:BND
JMP Jz rIP [ 0xE9 cz] s:I86, t:UNCOND_BR, c:JMPNR, w:R|RW, a:F64, p:BND
JMPF Ap CS,rIP [ 0xEA cp] s:I86, t:UNCOND_BR, c:JMPFD, w:R|W|W, m:NO64|NOSGX
JMP Jb rIP [ 0xEB cb] s:I86, t:UNCOND_BR, c:JMPNR, w:R|RW, a:F64, p:BND
IN AL,DX Fv [ 0xEC] s:I86, t:IO, w:W|R|R, f:IO, m:NOSGX
IN eAX,DX Fv [ 0xED] s:I86, t:IO, w:W|R|R, f:IO, m:NOSGX
OUT DX,AL Fv [ 0xEE] s:I86, t:IO, w:R|R|R, f:IO, a:SERIAL, m:NOSGX
OUT DX,eAX Fv [ 0xEF] s:I86, t:IO, w:R|R|R, f:IO, a:SERIAL, m:NOSGX
# 0xF0 - 0xFF
LOCK nil nil [ 0xF0] s:UNKNOWN, t:UNKNOWN, a:PREFIX
REPNZ nil nil [ 0xF2] s:UNKNOWN, t:UNKNOWN, a:PREFIX
XACQUIRE nil nil [ 0xF2] s:UNKNOWN, t:UNKNOWN, a:PREFIX
BND nil nil [ 0xF2] s:UNKNOWN, t:UNKNOWN, a:PREFIX
REPZ nil nil [ 0xF3] s:UNKNOWN, t:UNKNOWN, a:PREFIX
XRELEASE nil nil [ 0xF2] s:UNKNOWN, t:UNKNOWN, a:PREFIX
INT1 nil CS,rIP,Kv3,Fv [ 0xF1] s:I86, t:INTERRUPT, w:RW|RW|RW|W, f:INT, m:NOSGX
HLT nil nil [ 0xF4] s:I86, t:SYSTEM, m:KERNEL
CMC nil Fv [ 0xF5] s:I86, t:FLAGOP, w:RW, f:CF=m
TEST Eb,Ib Fv [ 0xF6 /0 ib] s:I86, t:LOGIC, w:R|R|W, f:LOGIC
TEST Eb,Ib Fv [ 0xF6 /1 ib] s:I86, t:LOGIC, w:R|R|W, f:LOGIC
NOT Eb nil [ 0xF6 /2] s:I86, t:LOGIC, w:RW|W, p:HLE|LOCK
NEG Eb Fv [ 0xF6 /3] s:I86, t:LOGIC, w:RW|W, f:ARITH, p:HLE|LOCK
MUL Eb AL,AX,Fv [ 0xF6 /4] s:I86, t:ARITH, w:R|R|W|W, f:MUL
IMUL Eb AL,AX,Fv [ 0xF6 /5] s:I86, t:ARITH, w:R|R|W|W, f:MUL
DIV Eb AX,AL,AH,Fv [ 0xF6 /6] s:I86, t:ARITH, w:R|R|W|W|W, f:DIV
IDIV Eb AX,AL,AH,Fv [ 0xF6 /7] s:I86, t:ARITH, w:R|R|W|W|W, f:DIV
TEST Ev,Iz Fv [ 0xF7 /0 iz] s:I86, t:LOGIC, w:R|R|W, f:LOGIC, a:OP2SEXO1
TEST Ev,Iz Fv [ 0xF7 /1 iz] s:I86, t:LOGIC, w:R|R|W, f:LOGIC, a:OP2SEXO1
NOT Ev nil [ 0xF7 /2] s:I86, t:LOGIC, w:RW|W, p:HLE|LOCK
NEG Ev Fv [ 0xF7 /3] s:I86, t:LOGIC, w:RW|W, f:ARITH, p:HLE|LOCK
MUL Ev rAX,rDX,Fv [ 0xF7 /4] s:I86, t:ARITH, w:R|RW|W|W, f:MUL
IMUL Ev rAX,rDX,Fv [ 0xF7 /5] s:I86, t:ARITH, w:R|RW|W|W, f:MUL
DIV Ev rAX,rDX,Fv [ 0xF7 /6] s:I86, t:ARITH, w:R|RW|RW|W, f:DIV
IDIV Ev rAX,rDX,Fv [ 0xF7 /7] s:I86, t:ARITH, w:R|RW|RW|W, f:DIV
CLC nil Fv [ 0xF8] s:I86, t:FLAGOP, w:W, f:CF=0
STC nil Fv [ 0xF9] s:I86, t:FLAGOP, w:W, f:CF=1
CLI nil Fv [ 0xFA] s:I86, t:FLAGOP, w:RW, f:IF=0
STI nil Fv [ 0xFB] s:I86, t:FLAGOP, w:RW, f:IF=1
CLD nil Fv [ 0xFC] s:I86, t:FLAGOP, w:W, f:DF=0
STD nil Fv [ 0xFD] s:I86, t:FLAGOP, w:W, f:DF=1
INC Eb Fv [ 0xFE /0] s:I86, t:ARITH, w:RW|W, f:INCDEC, p:HLE|LOCK
DEC Eb Fv [ 0xFE /1] s:I86, t:ARITH, w:RW|W, f:INCDEC, p:HLE|LOCK
INC Ev Fv [ 0xFF /0] s:I86, t:ARITH, w:RW|W, f:INCDEC, p:HLE|LOCK
DEC Ev Fv [ 0xFF /1] s:I86, t:ARITH, w:RW|W, f:INCDEC, p:HLE|LOCK
CALL Ev rIP,Kv,SHS1 [ 0xFF /2] s:I86, t:CALL, c:CALLNI, w:R|W|W|W, a:F64|CETT, p:BND|DNT
CALLF Mp CS,rIP,Kv2,SHS2 [ 0xFF /3:mem] s:I86, t:CALL, c:CALLFI, w:R|W|W|W|W, a:CETT, m:NOSGX
JMP Ev rIP [ 0xFF /4] s:I86, t:UNCOND_BR, c:JMPNI, w:R|W, a:F64|CETT, p:BND|DNT
JMPF Mp CS,rIP [ 0xFF /5:mem] s:I86, t:UNCOND_BR, c:JMPFI, w:R|W|W, a:CETT, m:NOSGX
PUSH Ev Kv [ 0xFF /6] s:I86, t:PUSH, w:R|W, a:D64