80x86指令/二进制码对照表

[ 返回目录 ]

处理器技术参数:

  Introduction
Date
Clock Speeds Bus Width Number of
Transistors
Addressable
Memory
Virtual
Memory
Brief
Description
4004 11/15/71 108 KHz 4 bits 2,300
(10 microns)
640 bytes
First microcomputer chip,
Arithmetic manipulation
8008 4/1/72 108 KHz 8 bits 3,500 16 KBytes
Data/character manipulation
8080 4/1/74 2 MHz 8 bits 6,000
(6 microns)
64 KBytes
10X the performance of the 8008
8086 6/8/78 5 MHz
8 MHz
10 MHz
16 bits 29,000
(3 microns)
1 Megabyte
10X the performance of the 8080
8088 6/1/79 5 MHz
8 MHz
8 bits 29,000
(3 microns)


Identical to 8086 except for its 8-bit external bus
80286 2/1/82 8 MHz
10 MHz
12 MHz
16 bits 134,000
(1.5 microns)
16 Megabytes 1 gigabyte 3-6X the performance of the 8086
Intel386(TM)DX Microprocessor 10/17/85 16 MHz
20 MHz
25 MHz
33 MHz
32 bits 275,000
(1 micron)
4 gigabytes 64 terabytes First X86 chip to handle 32-bit data sets
Intel386(TM)SX Microprocessor 6/16/88 16 MHz
20 MHz
16 bits 275,000
(1 micron)
4 gigabytes 64 terabytes 16-bit address bus enabled low-cost 32-bit processing
Intel486(TM)DX Microprocessor 4/10/89 25 MHz
33 MHz
50 MHz
32 bits 1,200,000
(1 micron, .8 micron with 50 MHz)
4 gigabytes 64 terabytes Level 1 cache on chip
Intel486(TM)SX Microprocessor 4/22/91 16 MHz
20 MHz
25 MHz
33 MHz
32 bits 1,185,000
(.8 micron)
4 gigabytes 64 terabytes identical in design to Intel486(TM) DX but without math coprocessor
Pentium® Processor 3/22/93 60MHz
66MHz
75MHz
90MHz
100MHz
120MHz
133MHz
150MHz
166MHz
32 bits 3.1 million
(.8 micron)
4 gigabytes 64 terabytes superscaler architecture brought 5X the performance of the 33-MHz Intel486 DX processor
Pentium® Pro Processor 3/27/95 150MHz
180MHz
200MHz
32 bits 5.5 million
(.32 micron)
4 gigabytes 64 terabytes dynamic execution architecture drives high-performing processor

处理器技术参数:

下表中 oo 的含义为:

下表中 mmm 的含义为:

下表中 rrr (w=0,w=1,reg32) 的含义为:

下表中 sss ( Segment Register ) 的含义为:

下表中 rrr ( Index Register ) 的含义为:

32 位寻址模式:

oo mmm rrr Description
00 000   DS:[EAX]
00 001   DS:[ECX]
00 010   DS:[EDX]
00 011   DS:[EBX]
00 100 000 DS:[EAX+scaled_index]
00 100 001 DS:[ECX+scaled_index]
00 100 010 DS:[EDX+scaled_index]
00 100 011 DS:[EBX+scaled_index]
00 100 100 SS:[ESP+scaled_index]
00 100 101 DS:[disp32+scaled_index]
00 100 110 DS:[ESI+scaled_index]
00 100 111 DS:[EDI+scaled_index]
00 101   DS:disp32
00 110   DS:[ESI]
00 111   DS:[EDI]
01 000   DS:[EAX+disp8]
01 001   DS:[ECX+disp8]
01 010   DS:[EDX+disp8]
01 011   DS:[EBX+disp8]
01 100 000 DS:[EAX+scaled_index+disp8]
01 100 001 DS:[ECX+scaled_index+disp8]
01 100 010 DS:[EDX+scaled_index+disp8]
01 100 011 DS:[EBX+scaled_index+disp8]
01 100 100 SS:[ESP+scaled_index+disp8]
01 100 101 SS:[EBP+scaled_index+disp8]
01 100 110 DS:[ESI+scaled_index+disp8]
01 100 111 DS:[EDI+scaled_index+disp8]
01 101   SS:[EBP+disp8]
01 110   DS:[ESI+disp8]
01 111   DS:[EDI+disp8]
10 000   DS:[EAX+disp32]
10 001   DS:[ECX+disp32]
10 010   DS:[EDX+disp32]
10 011   DS:[EBX+disp32]
10 100 000 DS:[EAX+scaled_index+disp32]
10 100 001 DS:[ECX+scaled_index+disp32]
10 100 010 DS:[EDX+scaled_index+disp32]
10 100 011 DS:[EBX+scaled_index+disp32]
10 100 100 SS:[ESP+scaled_index+disp32]
10 100 101 SS:[EBP+scaled_index+disp32]
10 100 110 DS:[ESI+scaled_index+disp32]
10 100 111 DS:[EDI+scaled_index+disp32]
10 101   SS:[EBP+disp32]
10 110   DS:[ESI+disp32]
10 111   DS:[EDI+disp32]

 


处理器指令集:


A || B || C || D || E || H || I || J || L || M || N || O || P || R || S || T || V || W || X

Name Regs Opcode Proc Description
AAA   00110111 8086 ASCII Adjust After Addition
AAD Imm8 11010101 Pentium ASCII Adjust Register AX Before Division
    1101010100001010 8086 ASCII Adjust Register AX Before Division
AAM Imm8 11010100 Pentium ASCII Adjust AX Register After Multiplication
    1101010000001010 8086 ASCII Adjust AX Register After Multiplication
AAS   00111111 8086 ASCII Adjust AL Register After Substraction
ADC Reg,Reg 0001001woorrrmmm 8086 Add Integers with Carry
  Mem,Reg 0001000woorrrmmm 8086 Add Integers with Carry
  Reg,Mem 0001001woorrrmmm 8086 Add Integers with Carry
  Acc,Imm 0001010w 8086 Add Integers with Carry
  Reg,Imm8 1000001woo010mmm 8086 Add Integers with Carry
  Mem,Imm8 1000001woo010mmm 8086 Add Integers with Carry
  Reg,Imm 1000000woo010mmm 8086 Add Integers with Carry
  Mem,Imm 1000000woo010mmm 8086 Add Integers with Carry
ADD Reg,Reg 0000001woorrrmmm 8086 Add Integers
  Mem,Reg 0000000woorrrmmm 8086 Add Integers
  Reg,Mem 0000001woorrrmmm 8086 Add Integers
  Acc,Imm 0000010w 8086 Add Integers
  Reg,Imm8 1000001woo000mmm 8086 Add Integers
  Mem,Imm8 1000001woo000mmm 8086 Add Integers
  Reg,Imm 1000000woo000mmm 8086 Add Integers
  Mem,Imm 1000000woo000mmm 8086 Add Integers
AND Reg,Reg 0010001woorrrmmm 8086 Logical AND
  Mem,Reg 0010000woorrrmmm 8086 Logical AND
  Reg,Mem 0010001woorrrmmm 8086 Logical AND
  Acc,Imm 0010010w 8086 Logical AND
  Reg,Imm8 1000001woo100mmm 8086 Logical AND
  Mem,Imm8 1000001woo100mmm 8086 Logical AND
  Reg,Imm 1000000woo100mmm 8086 Logical AND
  Mem,Imm 1000000woo100mmm 8086 Logical AND
ARPL Reg16,Reg16 01100011oorrrmmm 80286 Adjust Requester Privilege Level of Selector
  Mem16,Reg16 01100011oorrrmmm 80286 Adjust Requester Privilege Level of Selector
BOUND Reg16,Mem32 01100010oorrrmmm 80186 Check Array Index Against Bounds
  Reg32,Mem64 01100010oorrrmmm 80386 Check Array Index Against Bounds
BSF RegWord,RegWord 0000111110111100oorrrmmm 80386 Bit Scan Forward
  RegWord,MemWord 0000111110111100oorrrmmm 80386 Bit Scan Forward
BSR RegWord,RegWord 0000111110111101oorrrmmm 80386 Bit Scan Reverse
  RegWord,MemWord 0000111110111101oorrrmmm 80386 Bit Scan Reverse
BSWAP RegWord 0000111111001rrr 80486 Byte swap
BT RegWord,Imm8 0000111110111010oo100mmm 80386 Bit Test
  MemWord,Imm8 0000111110111010oo100mmm 80386 Bit Test
  RegWord,RegWord 0000111110100011oorrrmmm 80386 Bit Test
  MemWord,RegWord 0000111110100011oorrrmmm 80386 Bit Test
BTC RegWord,Imm8 0000111110111010oo111mmm 80386 Bit Test and Complement
  MemWord,Imm8 0000111110111010oo111mmm 80386 Bit Test and Complement
  RegWord,RegWord 0000111110111011oorrrmmm 80386 Bit Test and Complement
  MemWord,RegWord 0000111110111011oorrrmmm 80386 Bit Test and Complement
BTR RegWord,Imm8 0000111110111010oo110mmm 80386 Bit Test and Reset
  MemWord,Imm8 0000111110111010oo110mmm 80386 Bit Test and Reset
  RegWord,RegWord 0000111110110011oorrrmmm 80386 Bit Test and Reset
  MemWord,RegWord 0000111110110011oorrrmmm 80386 Bit Test and Reset
BTS RegWord,Imm8 0000111110111010oo101mmm 80386 Bit Test and Set
  MemWord,Imm8 0000111110111010oo101mmm 80386 Bit Test and Set
  RegWord,RegWord 0000111110101011oorrrmmm 80386 Bit Test and Set
  MemWord,RegWord 0000111110101011oorrrmmm 80386 Bit Test and Set
CBW   10011000 8086 Convert Byte to Word
CDQ   10011001 80386 Convert Doubleword to Quad-Word
CLC   11111000 8086 Clear Carry Flag (CF)
CLD   11111100 8086 Clear Direction Flag (DF)
CLI   11111010 8086 Clear Interrupt Flag (IF)
CLTS   0000111100000110 80286 Clear Task-Switched Flag in Control Register Zero
CMC   11110101 8086 Complementer Carry Flag (CF)
CMOVcc Reg,Reg 000011110100ccccoorrrmmm PentiumPro Conditional Move
  Reg,Mem 000011110100ccccoorrrmmm PentiumPro Conditional Move
CMP Reg,Reg 0011101woorrrmmm 8086 Compare
  Mem,Reg 0011100woorrrmmm 8086 Compare
  Reg,Mem 0011101woorrrmmm 8086 Compare
  Acc,Imm 0011110w 8086 Compare
  Reg,Imm8 1000001woo111mmm 8086 Compare
  Mem,Imm8 1000001woo111mmm 8086 Compare
  Reg,Imm 1000000woo111mmm 8086 Compare
  Mem,Imm 1000000woo111mmm 8086 Compare
CMPSB   10100110 8086 Compare String - Byte
CMPSW   10100111 8086 Compare String - Word
CMPSD   10100111 80386 Compare String - Doubleword
CMPXCHG Reg,Reg 000011111011000woorrrmmm 80486 Compare and Exchange
  Mem,Reg 000011111011000woorrrmmm 80486 Compare and Exchange
CMPXCHG8B Mem64 0000111111000111oo001mmm Pentium Compare and Exchange 8 Bytes
CPUID   0000111110100010 Pentium CPU Identification code to EAX
CWD   10011001 8086 Convert Word to Doubleword
CWDE   10011000 80386 Convert Word to Extended Doubleword
DAA   00100111 8086 Decimal Adjust Register After Addition
DAS   00101111 8086 Decimal Adjust AL Register After Substraction
DEC RegWord 01001rrr 8086 Decrement by One
  Reg 1111111woo001mmm 8086 Decrement by One
  Mem 1111111woo001mmm 8086 Decrement by One
DIV Reg 1111011woo110mmm 8086 Unsigned Integer Divide
  Mem 1111011woo110mmm 8086 Unsigned Integer Divide
ENTER Imm16,Imm8 11001000 80186 Make Stack Frame for Procedure Parameter
HLT   11110100 8086 Halt
IDIV Reg 1111011woo111mmm 8086 Signed Divide
  Mem 1111011woo111mmm 8086 Signed Divide
IMUL RegWord,RegWord,Imm8 01101011oorrrmmm 80186 Signed Integer Multiply
  RegWord,MemWord,Imm8 01101011oorrrmmm 80186 Signed Integer Multiply
  RegWord,RegWord,Imm 01101001oorrrmmm 80186 Signed Integer Multiply
  RegWord,MemWord,Imm 01101001oorrrmmm 80186 Signed Integer Multiply
  RegWord,Imm8 0110101111rrrqqq 80186 Signed Integer Multiply
  RegWord,Imm 0110100111rrrqqq 80186 Signed Integer Multiply
  RegWord,RegWord 0000111110101111oorrrmmm 80386 Signed Integer Multiply
  RegWord,MemWord 0000111110101111oorrrmmm 80386 Signed Integer Multiply
  Reg 1111011woo101mmm 8086 Signed Integer Multiply
  Mem 1111011woo101mmm 8086 Signed Integer Multiply
IN Acc,Imm8 1110010w 8086 Input from Port
  Acc,DX 1110110w 8086 Input from Port
INC RegWord 01000rrr 8086 Increment by 1
  Reg 1111111woo000mmm 8086 Increment by 1
  Mem 1111111woo000mmm 8086 Increment by 1
INSB   01101100 80186 Input Byte
INSW   01101101 80186 Input Word
INSD   01101101 80386 Input DoubleWord
INT 3 11001100 8086 Call to Interrupt Procedure
  Imm8 11001101 8086 Call to Interrupt Procedure
INTO   11001110 8086 Interrupt on Overflow
INVD   0000111100001000 80486 Invalidate data cache
INVLPG Mem 0000111100000001oo111mmm 80486 Invalidate TBL entry
IRET   11001111 8086 Return from Interrupt
IRETD   11001111 80386 Return from Interrupt - 32-bit Mode
LAHF   10011111 8086 Load Flags into AH Register
LAR RegWord,RegWord 0000111100000010oorrrmmm 80286 Load Access Rights Byte
  RegWord,MemWord 0000111100000010oorrrmmm 80286 Load Access Rights Byte
LDS Reg16,Mem32 11000101oorrrmmm 8086 Load Pointer Using DS
  Reg32,Mem64 11000101oorrrmmm 80386 Load Pointer Using DS
LES Reg16,Mem32 11000100oorrrmmm 8086 Load Pointer Using ES
  Reg32,Mem64 11000100oorrrmmm 80386 Load Pointer Using ES
LFS Reg16,Mem32 0000111110110100oorrrmmm 80386 Load Pointer Using FS
  Reg32,Mem64 0000111110110100oorrrmmm 80386 Load Pointer Using FS
LGS Reg16,Mem32 0000111110110101oorrrmmm 80386 Load Pointer Using GS
  Reg32,Mem64 0000111110110101oorrrmmm 80386 Load Pointer Using GS
LSS Reg16,Mem32 0000111110110010oorrrmmm 80386 Load Pointer Using SS
  Reg32,Mem64 0000111110110010oorrrmmm 80386 Load Pointer Using SS
LEA RegWord,Mem 10001101oorrrmmm 8086 Load Effective Address
LEAVE   11001001 80186 High Level Procedure Exit
LGDT Mem64 0000111100000001oo010mmm 80286 Load Global Descriptor Table
LIDT Mem64 0000111100000001oo011mmm 80286 Load Interrupt Descriptor Table
LLDT Reg16 0000111100000000oo010mmm 80286 Load Local Descriptor Table
  Mem16 0000111100000000oo010mmm 80286 Load Local Descriptor Table
LMSW Reg16 0000111100000001oo110mmm 80286 Load Machine Status Word
  Mem16 0000111100000001oo110mmm 80286 Load Machine Status Word
LODSB   10101100 8086 Load Byte
LODSW   10101101 8086 Load Word
LODSD   10101101 80386 Load Doubleword
LSL RegWord,RegWord 0000111100000011oorrrmmm 80286 Load Segment Limit
  RegWord,MemWord 0000111100000011oorrrmmm 80286 Load Segment Limit
LTR Reg16 0000111100000000oo011mmm 80286 Load Task Register
  Mem16 0000111100000000oo011mmm 80286 Load Task Register
MOV MemOfs,Acc 1010001w 8086 Move Data
  Acc,MemOfs 1010000w 8086 Move Data
  Reg,Imm 1011wrrr 8086 Move Data
  Mem,Imm 1100011woo000mmm 8086 Move Data
  Reg,Reg 1000101woorrrmmm 8086 Move Data
  Reg,Mem 1000101woorrrmmm 8086 Move Data
  Mem,Reg 1000100woorrrmmm 8086 Move Data
  Reg16,Seg 10001100oosssmmm 8086 Move Data
  Seg,Reg16 10001110oosssmmm 8086 Move Data
  Mem16,Seg 10001100oosssmmm 8086 Move Data
  Seg,Mem16 10001110oosssmmm 8086 Move Data
  Reg32,CRn 000011110010000011sssrrr 80386 Move Data
  CRn,Reg32 000011110010001011sssrrr 80386 Move Data
  Reg32,DRn 000011110010000111sssrrr 80386 Move Data
  DRn,Reg32 000011110010001111sssrrr 80386 Move Data
  Reg32,TRn 000011110010010011sssrrr 80386 Move Data
  TRn,Reg32 000011110010011011sssrrr 80386 Move Data
MOVSB   10100100 8086 Move Byte
MOVSW   10100101 8086 Move Word
MOVSD   10100101 80386 Move Doubleword
MOVSX RegWord,Reg8 0000111110111110oorrrmmm 80386 Move with Sign Extension
  RegWord,Mem8 0000111110111110oorrrmmm 80386 Move with Sign Extension
  RegWord,Reg16 0000111110111111oorrrmmm 80386 Move with Sign Extension
  RegWord,Mem16 0000111110111111oorrrmmm 80386 Move with Sign Extension
MOVZX RegWord,Reg8 0000111110110110oorrrmmm 80386 Move with Zero Extension
  RegWord,Mem8 0000111110110110oorrrmmm 80386 Move with Zero Extension
  RegWord,Reg16 0000111110110111oorrrmmm 80386 Move with Zero Extension
  RegWord,Mem16 0000111110110111oorrrmmm 80386 Move with Zero Extension
MUL Reg 1111011woo100mmm 8086 Unsigned Integer Multiply of AL, AX or EAX
  Mem 1111011woo100mmm 8086 Unsigned Integer Multiply of AL, AX or EAX
NEG Reg 1111011woo011mmm 8086 Negate(Two's Complement)
  Mem 1111011woo011mmm 8086 Negate(Two's Complement)
NOP   10010000 8086 No Operation
NOT Reg 1111011woo010mmm 8086 Negate(One's Complement)
  Mem 1111011woo010mmm 8086 Negate(One's Complement)
OR Reg,Reg 0000101woorrrmmm 8086 Logical Inclusive OR
  Mem,Reg 0000100woorrrmmm 8086 Logical Inclusive OR
  Reg,Mem 0000101woorrrmmm 8086 Logical Inclusive OR
  Acc,Imm 0000110w 8086 Logical Inclusive OR
  Reg,Imm8 1000001woo001mmm 8086 Logical Inclusive OR
  Mem,Imm8 1000001woo001mmm 8086 Logical Inclusive OR
  Reg,Imm 1000000woo001mmm 8086 Logical Inclusive OR
  Mem,Imm 1000000woo001mmm 8086 Logical Inclusive OR
OUT Imm8,Acc 1110011w 8086 Output To Port
  DX,Acc 1110111w 8086 Output To Port
OUTSB   01101110 80186 Output Byte
OUTSW   01101111 80186 Output Word
OUTSD   01101111 80386 Output Doubleword
POP RegWord 01011rrr 8086 Pop a Word from the Stack
  MemWord 10001111oo000mmm 8086 Pop a Word from the Stack
  SegOld 00sss111 8086 Pop a Word from the Stack
  Seg 0000111110sss001 80386 Pop a Word from the Stack
POPA   01100001 80186 POP All Registers
POPAD   01100001 80386 POP All Registers - 32-bit Mode
POPF   10011101 8086 POP Stack into FLAGS
POPFD   10011101 80386 POP Stack into EFLAGS
PUSH RegWord 01010rrr 8086 Push Operand onto Stack
  MemWord 11111111oo110mmm 8086 Push Operand onto Stack
  SegOld 00sss110 8086 Push Operand onto Stack
  Seg 0000111110sss000 80386 Push Operand onto Stack
  Imm8 01101010 80186 Push Operand onto Stack
  Imm 01101000 80186 Push Operand onto Stack
PUSHW Imm16 01101000 80286 PUSH Word
PUSHD Imm32 01101000 80386 PUSH Double Word
PUSHA   01100000 80186 PUSH All Registers
PUSHAD   01100000 80386 PUSH All Registers - 32-bit Mode
PUSHF   10011100 8086 PUSH FLAGS
PUSHFD   10011100 80386 PUSH EFLAGS
RCL Reg,1 1101000woo010mmm 8086 Rotate Left through Carry - Uses CF for Extension
  Mem,1 1101000woo010mmm 8086 Rotate Left through Carry - Uses CF for Extension
  Reg,CL 1101001woo010mmm 8086 Rotate Left through Carry - Uses CF for Extension
  Mem,CL 1101001woo010mmm 8086 Rotate Left through Carry - Uses CF for Extension
  Reg,Imm8 1100000woo010mmm 80186 Rotate Left through Carry - Uses CF for Extension
  Mem,Imm8 1100000woo010mmm 80186 Rotate Left through Carry - Uses CF for Extension
RCR Reg,1 1101000woo011mmm 8086 Rotate Right through Carry - Uses CF for Extension
  Mem,1 1101000woo011mmm 8086 Rotate Right through Carry - Uses CF for Extension
  Reg,CL 1101001woo011mmm 8086 Rotate Right through Carry - Uses CF for Extension
  Mem,CL 1101001woo011mmm 8086 Rotate Right through Carry - Uses CF for Extension
  Reg,Imm8 1100000woo011mmm 80186 Rotate Right through Carry - Uses CF for Extension
  Mem,Imm8 1100000woo011mmm 80186 Rotate Right through Carry - Uses CF for Extension
RDMSR   0000111100110010 Pentium Read from Model Specific Register
RDTSC   0000111101010001 Pentium Read Timwatamp Counter
RET NEAR 11000011 8086 Return from subprocedure
RET imm NEAR 11000010 8086 Return from subprocedure
RET FAR 11001011 8086 Return from subprocedure
RET imm FAR 11001010 8086 Return from subprocedure
RDPMC   0000111100110011 PentiumPro Read Performance Monitor Counter
ROL Reg,1 1101000woo000mmm 8086 Rotate Left through Carry - Wrap bits around
  Mem,1 1101000woo000mmm 8086 Rotate Left through Carry - Wrap bits around
  Reg,CL 1101001woo000mmm 8086 Rotate Left through Carry - Wrap bits around
  Mem,CL 1101001woo000mmm 8086 Rotate Left through Carry - Wrap bits around
  Reg,Imm8 1100000woo000mmm 80186 Rotate Left through Carry - Wrap bits around
  Mem,Imm8 1100000woo000mmm 80186 Rotate Left through Carry - Wrap bits around
ROR Reg,1 1101000woo001mmm 8086 Rotate Right through Carry - Wrap bits around
  Mem,1 1101000woo001mmm 8086 Rotate Right through Carry - Wrap bits around
  Reg,CL 1101001woo001mmm 8086 Rotate Right through Carry - Wrap bits around
  Mem,CL 1101001woo001mmm 8086 Rotate Right through Carry - Wrap bits around
  Reg,Imm8 1100000woo001mmm 80186 Rotate Right through Carry - Wrap bits around
  Mem,Imm8 1100000woo001mmm 80186 Rotate Right through Carry - Wrap bits around
RSM   0000111110101010 Pentium Return from System Management mode
SALC   11010110 Pentium Pro Set AL on Carry
SAHF   10011110 8086 Load Flags into AH Register
SAL Reg,1 1101000woo100mmm 8086 Shift Arithmetic Left
  Mem,1 1101000woo100mmm 8086 Shift Arithmetic Left
  Reg,CL 1101001woo100mmm 8086 Shift Arithmetic Left
  Mem,CL 1101001woo100mmm 8086 Shift Arithmetic Left
  Reg,Imm8 1100000woo100mmm 80186 Shift Arithmetic Left
  Mem,Imm8 1100000woo100mmm 80186 Shift Arithmetic Left
SAR Reg,1 1101000woo111mmm 8086 Shift Arithmetic Right
  Mem,1 1101000woo111mmm 8086 Shift Arithmetic Right
  Reg,CL 1101001woo111mmm 8086 Shift Arithmetic Right
  Mem,CL 1101001woo111mmm 8086 Shift Arithmetic Right
  Reg,Imm8 1100000woo111mmm 80186 Shift Arithmetic Right
  Mem,Imm8 1100000woo111mmm 80186 Shift Arithmetic Right
SETcc Reg8 000011111001ccccoo000mmm 80386 Set Byte on Condition Code
  Mem8 000011111001ccccoo000mmm 80386 Set Byte on Condition Code
SHL Reg,1 1101000woo100mmm 8086