80x86指令码查询表(转载)

Technical Specifications

Introduction DateClock SpeedsBus WidthNumber of TransistorsAddressable MemoryVirtual MemoryBrief Description
400411/15/71108 KHz4 bits2,300 (10 microns)640 bytesFirst microcomputer chip, Arithmetic manipulation
80084/1/72108 KHz8 bits3,50016 KBytesData/character manipulation
80804/1/742 MHz8 bits6,000 (6 microns)64 KBytes10X the performance of the 8008
80866/8/785 MHz 8 MHz 10 MHz16 bits29,000 (3 microns)1 Megabyte10X the performance of the 8080
80886/1/795 MHz 8 MHz8 bits29,000 (3 microns)Identical to 8086 except for its 8-bit external bus
802862/1/828 MHz 10 MHz 12 MHz16 bits134,000 (1.5 microns)16 Megabytes1 gigabyte3-6X the performance of the 8086
Intel386(TM)DX Microprocessor10/17/8516 MHz 20 MHz 25 MHz 33 MHz32 bits275,000 (1 micron)4 gigabytes64 terabytesFirst X86 chip to handle 32-bit data sets
Intel386(TM)SX Microprocessor6/16/8816 MHz 20 MHz16 bits275,000 (1 micron)4 gigabytes64 terabytes16-bit address bus enabled low-cost 32-bit processing
Intel486(TM)DX Microprocessor4/10/8925 MHz 33 MHz 50 MHz32 bits1,200,000 (1 micron, .8 micron with 50 MHz)4 gigabytes64 terabytesLevel 1 cache on chip
Intel486(TM)SX Microprocessor4/22/9116 MHz 20 MHz 25 MHz 33 MHz32 bits1,185,000 (.8 micron)4 gigabytes64 terabytesidentical in design to Intel486(TM) DX but without math coprocessor
Pentium® Processor3/22/9360MHz 66MHz 75MHz 90MHz 100MHz 120MHz 133MHz 150MHz 166MHz32 bits3.1 million (.8 micron)4 gigabytes64 terabytessuperscaler architecture brought 5X the performance of the 33-MHz Intel486 DX processor
Pentium® Pro Processor3/27/95150MHz 180MHz 200MHz32 bits5.5 million (.32 micron)4 gigabytes64 terabytesdynamic execution architecture drives high-performing processor


Instructions and opcodes

oo : Function

  • 00 : If mmm = 110, then a displacement follows the operation; otherwise, no displacement is used

  • 01 : An 8-bit signed displacement follows the opcode

  • 10 : A 16-bit signed displacement follows the opcode

  • 11 : mmm specifies a register, instead of an addressing mode

mmm : Function

  • 000 : DS:[BX+SI]

  • 001 : DS:[BX+DI]

  • 010 : SS:[BP+SI]

  • 011 : SS:[BP+DI]

  • 100 : DS:[SI]

  • 101 : DS:[DI]

  • 110 : SS:[BP]

  • 111 : DS:[BX]

rrr : W=0 : W=1 : reg32

  • 000 : AL : AX : EAX

  • 001 : CL : CX : ECX

  • 010 : DL : DX : EDX

  • 011 : BL : BX : EBX

  • 100 : AH : SP : ESP

  • 101 : CH : BP : EBP

  • 110 : DH : SI : ESI

  • 111 : BH : DI : EDI

sss : Segment Register

  • 000 : ES

  • 001 : CS

  • 010 : SS

  • 011 : DS

  • 100 : FS (Only 386+)

  • 101 : GS (Only 386+)

rrr : Index Register

  • 000 : EAX

  • 001 : ECX

  • 010 : EDX

  • 011 : EBX

  • 100 : No Index

  • 101 : EBP

  • 110 : ESI

  • 111 : EDI

32 bit addressing-mode

oommmrrrDescription
00000DS:[EAX]
00001DS:[ECX]
00010DS:[EDX]
00011DS:[EBX]
00100000DS:[EAX+scaled_index]
00100001DS:[ECX+scaled_index]
00100010DS:[EDX+scaled_index]
00100011DS:[EBX+scaled_index]
00100100SS:[ESP+scaled_index]
00100101DS:[disp32+scaled_index]
00100110DS:[ESI+scaled_index]
00100111DS:[EDI+scaled_index]
00101DS:disp32
00110DS:[ESI]
00111DS:[EDI]
01000DS:[EAX+disp8]
01001DS:[ECX+disp8]
01010DS:[EDX+disp8]
01011DS:[EBX+disp8]
01100000DS:[EAX+scaled_index+disp8]
01100001DS:[ECX+scaled_index+disp8]
01100010DS:[EDX+scaled_index+disp8]
01100011DS:[EBX+scaled_index+disp8]
01100100SS:[ESP+scaled_index+disp8]
01100101SS:[EBP+scaled_index+disp8]
01100110DS:[ESI+scaled_index+disp8]
01100111DS:[EDI+scaled_index+disp8]
01101SS:[EBP+disp8]
01110DS:[ESI+disp8]
01111DS:[EDI+disp8]
10000DS:[EAX+disp32]
10001DS:[ECX+disp32]
10010DS:[EDX+disp32]
10011DS:[EBX+disp32]
10100000DS:[EAX+scaled_index+disp32]
10100001DS:[ECX+scaled_index+disp32]
10100010DS:[EDX+scaled_index+disp32]
10100011DS:[EBX+scaled_index+disp32]
10100100SS:[ESP+scaled_index+disp32]
10100101SS:[EBP+scaled_index+disp32]
10100110DS:[ESI+scaled_index+disp32]
10100111DS:[EDI+scaled_index+disp32]
10101SS:[EBP+disp32]
10110DS:[ESI+disp32]
10111DS:[EDI+disp32]


Main Instructions

NameRegsOpcodeProcDescription
AAA001101118086ASCII Adjust After Addition
AADImm811010101PentiumASCII Adjust Register AX Before Division
11010101000010108086ASCII Adjust Register AX Before Division
AAMImm811010100PentiumASCII Adjust AX Register After Multiplication
11010100000010108086ASCII Adjust AX Register After Multiplication
AAS001111118086ASCII Adjust AL Register After Substraction
ADCReg,Reg0001001woorrrmmm8086Add Integers with Carry
Mem,Reg0001000woorrrmmm8086Add Integers with Carry
Reg,Mem0001001woorrrmmm8086Add Integers with Carry
Acc,Imm0001010w8086Add Integers with Carry
Reg,Imm81000001woo010mmm8086Add Integers with Carry
Mem,Imm81000001woo010mmm8086Add Integers with Carry
Reg,Imm1000000woo010mmm8086Add Integers with Carry
Mem,Imm1000000woo010mmm8086Add Integers with Carry
ADDReg,Reg0000001woorrrmmm8086Add Integers
Mem,Reg0000000woorrrmmm8086Add Integers
Reg,Mem0000001woorrrmmm8086Add Integers
Acc,Imm0000010w8086Add Integers
Reg,Imm81000001woo000mmm8086Add Integers
Mem,Imm81000001woo000mmm8086Add Integers
Reg,Imm1000000woo000mmm8086Add Integers
Mem,Imm1000000woo000mmm8086Add Integers
ANDReg,Reg0010001woorrrmmm8086Logical AND
Mem,Reg0010000woorrrmmm8086Logical AND
Reg,Mem0010001woorrrmmm8086Logical AND
Acc,Imm0010010w8086Logical AND
Reg,Imm81000001woo100mmm8086Logical AND
Mem,Imm81000001woo100mmm8086Logical AND
Reg,Imm1000000woo100mmm8086Logical AND
Mem,Imm1000000woo100mmm8086Logical AND
ARPLReg16,Reg1601100011oorrrmmm80286Adjust Requester Privilege Level of Selector
Mem16,Reg1601100011oorrrmmm80286Adjust Requester Privilege Level of Selector
BOUNDReg16,Mem3201100010oorrrmmm80186Check Array Index Against Bounds
Reg32,Mem6401100010oorrrmmm80386Check Array Index Against Bounds
BSFRegWord,RegWord0000111110111100oorrrmmm80386Bit Scan Forward
RegWord,MemWord0000111110111100oorrrmmm80386Bit Scan Forward
BSRRegWord,RegWord0000111110111101oorrrmmm80386Bit Scan Reverse
RegWord,MemWord0000111110111101oorrrmmm80386Bit Scan Reverse
BSWAPRegWord0000111111001rrr80486Byte swap
BTRegWord,Imm80000111110111010oo100mmm80386Bit Test
MemWord,Imm80000111110111010oo100mmm80386Bit Test
RegWord,RegWord0000111110100011oorrrmmm80386Bit Test
MemWord,RegWord0000111110100011oorrrmmm80386Bit Test
BTCRegWord,Imm80000111110111010oo111mmm80386Bit Test and Complement
MemWord,Imm80000111110111010oo111mmm80386Bit Test and Complement
RegWord,RegWord0000111110111011oorrrmmm80386Bit Test and Complement
MemWord,RegWord0000111110111011oorrrmmm80386Bit Test and Complement
BTRRegWord,Imm80000111110111010oo110mmm80386Bit Test and Reset
MemWord,Imm80000111110111010oo110mmm80386Bit Test and Reset
RegWord,RegWord0000111110110011oorrrmmm80386Bit Test and Reset
MemWord,RegWord0000111110110011oorrrmmm80386Bit Test and Reset
BTSRegWord,Imm80000111110111010oo101mmm80386Bit Test and Set
MemWord,Imm80000111110111010oo101mmm80386Bit Test and Set
RegWord,RegWord0000111110101011oorrrmmm80386Bit Test and Set
MemWord,RegWord0000111110101011oorrrmmm80386Bit Test and Set
CBW100110008086Convert Byte to Word
CDQ1001100180386Convert Doubleword to Quad-Word
CLC111110008086Clear Carry Flag (CF)
CLD111111008086Clear Direction Flag (DF)
CLI111110108086Clear Interrupt Flag (IF)
CLTS000011110000011080286Clear Task-Switched Flag in Control Register Zero
CMC111101018086Complementer Carry Flag (CF)
CMOVccReg,Reg000011110100ccccoorrrmmmPentiumProConditional Move
Reg,Mem000011110100ccccoorrrmmmPentiumProConditional Move
CMPReg,Reg0011101woorrrmmm8086Compare
Mem,Reg0011100woorrrmmm8086Compare
Reg,Mem0011101woorrrmmm8086Compare
Acc,Imm0011110w8086Compare
Reg,Imm81000001woo111mmm8086Compare
Mem,Imm81000001woo111mmm8086Compare
Reg,Imm1000000woo111mmm8086Compare
Mem,Imm1000000woo111mmm8086Compare
CMPSB101001108086Compare String - Byte
CMPSW101001118086Compare String - Word
CMPSD1010011180386Compare String - Doubleword
CMPXCHGReg,Reg000011111011000woorrrmmm80486Compare and Exchange
Mem,Reg000011111011000woorrrmmm80486Compare and Exchange
CMPXCHG8BMem640000111111000111oo001mmmPentiumCompare and Exchange 8 Bytes
CPUID0000111110100010PentiumCPU Identification code to EAX
CWD100110018086Convert Word to Doubleword
CWDE1001100080386Convert Word to Extended Doubleword
DAA001001118086Decimal Adjust Register After Addition
DAS001011118086Decimal Adjust AL Register After Substraction
DECRegWord01001rrr8086Decrement by One
Reg1111111woo001mmm8086Decrement by One
Mem1111111woo001mmm8086Decrement by One
DIVReg1111011woo110mmm8086Unsigned Integer Divide
Mem1111011woo110mmm8086Unsigned Integer Divide
ENTERImm16,Imm81100100080186Make Stack Frame for Procedure Parameter
HLT111101008086Halt
IDIVReg1111011woo111mmm8086Signed Divide
Mem1111011woo111mmm8086Signed Divide
IMULRegWord,RegWord,Imm801101011oorrrmmm80186Signed Integer Multiply
RegWord,MemWord,Imm801101011oorrrmmm80186Signed Integer Multiply
RegWord,RegWord,Imm01101001oorrrmmm80186Signed Integer Multiply
RegWord,MemWord,Imm01101001oorrrmmm80186Signed Integer Multiply
RegWord,Imm80110101111rrrqqq80186Signed Integer Multiply
RegWord,Imm0110100111rrrqqq80186Signed Integer Multiply
RegWord,RegWord0000111110101111oorrrmmm80386Signed Integer Multiply
RegWord,MemWord0000111110101111oorrrmmm80386Signed Integer Multiply
Reg1111011woo101mmm8086Signed Integer Multiply
Mem1111011woo101mmm8086Signed Integer Multiply
INAcc,Imm81110010w8086Input from Port
Acc,DX1110110w8086Input from Port
INCRegWord01000rrr8086Increment by 1
Reg1111111woo000mmm8086Increment by 1
Mem1111111woo000mmm8086Increment by 1
INSB0110110080186Input Byte
INSW0110110180186Input Word
INSD0110110180386Input DoubleWord
INT3110011008086Call to Interrupt Procedure
Imm8110011018086Call to Interrupt Procedure
INTO110011108086Interrupt on Overflow
INVD000011110000100080486Invalidate data cache
INVLPGMem0000111100000001oo111mmm80486Invalidate TBL entry
IRET110011118086Return from Interrupt
IRETD1100111180386Return from Interrupt - 32-bit Mode
LAHF100111118086Load Flags into AH Register
LARRegWord,RegWord0000111100000010oorrrmmm80286Load Access Rights Byte
RegWord,MemWord0000111100000010oorrrmmm80286Load Access Rights Byte
LDSReg16,Mem3211000101oorrrmmm8086Load Pointer Using DS
Reg32,Mem6411000101oorrrmmm80386Load Pointer Using DS
LESReg16,Mem3211000100oorrrmmm8086Load Pointer Using ES
Reg32,Mem6411000100oorrrmmm80386Load Pointer Using ES
LFSReg16,Mem320000111110110100oorrrmmm80386Load Pointer Using FS
Reg32,Mem640000111110110100oorrrmmm80386Load Pointer Using FS
LGSReg16,Mem320000111110110101oorrrmmm80386Load Pointer Using GS
Reg32,Mem640000111110110101oorrrmmm80386Load Pointer Using GS
LSSReg16,Mem320000111110110010oorrrmmm80386Load Pointer Using SS
Reg32,Mem640000111110110010oorrrmmm80386Load Pointer Using SS
LEARegWord,Mem10001101oorrrmmm8086Load Effective Address
LEAVE1100100180186High Level Procedure Exit
LGDTMem640000111100000001oo010mmm80286Load Global Descriptor Table
LIDTMem640000111100000001oo011mmm80286Load Interrupt Descriptor Table
LLDTReg160000111100000000oo010mmm80286Load Local Descriptor Table
Mem160000111100000000oo010mmm80286Load Local Descriptor Table
LMSWReg160000111100000001oo110mmm80286Load Machine Status Word
Mem160000111100000001oo110mmm80286Load Machine Status Word
LODSB101011008086Load Byte
LODSW101011018086Load Word
LODSD1010110180386Load Doubleword
LSLRegWord,RegWord0000111100000011oorrrmmm80286Load Segment Limit
RegWord,MemWord0000111100000011oorrrmmm80286Load Segment Limit
LTRReg160000111100000000oo011mmm80286Load Task Register
Mem160000111100000000oo011mmm80286Load Task Register
MOVMemOfs,Acc1010001w8086Move Data
Acc,MemOfs1010000w8086Move Data
Reg,Imm1011wrrr8086Move Data
Mem,Imm1100011woo000mmm8086Move Data
Reg,Reg1000101woorrrmmm8086Move Data
Reg,Mem1000101woorrrmmm8086Move Data
Mem,Reg1000100woorrrmmm8086Move Data
Reg16,Seg10001100oosssmmm8086Move Data
Seg,Reg1610001110oosssmmm8086Move Data
Mem16,Seg10001100oosssmmm8086Move Data
Seg,Mem1610001110oosssmmm8086Move Data
Reg32,CRn000011110010000011sssrrr80386Move Data
CRn,Reg32000011110010001011sssrrr80386Move Data
Reg32,DRn000011110010000111sssrrr80386Move Data
DRn,Reg32000011110010001111sssrrr80386Move Data
Reg32,TRn000011110010010011sssrrr80386Move Data
TRn,Reg32000011110010011011sssrrr80386Move Data
MOVSB101001008086Move Byte
MOVSW101001018086Move Word
MOVSD1010010180386Move Doubleword
MOVSXRegWord,Reg80000111110111110oorrrmmm80386Move with Sign Extension
RegWord,Mem80000111110111110oorrrmmm80386Move with Sign Extension
RegWord,Reg160000111110111111oorrrmmm80386Move with Sign Extension
RegWord,Mem160000111110111111oorrrmmm80386Move with Sign Extension
MOVZXRegWord,Reg80000111110110110oorrrmmm80386Move with Zero Extension
RegWord,Mem80000111110110110oorrrmmm80386Move with Zero Extension
RegWord,Reg160000111110110111oorrrmmm80386Move with Zero Extension
RegWord,Mem160000111110110111oorrrmmm80386Move with Zero Extension
MULReg1111011woo100mmm8086Unsigned Integer Multiply of AL, AX or EAX
Mem1111011woo100mmm8086Unsigned Integer Multiply of AL, AX or EAX
NEGReg1111011woo011mmm8086Negate(Two's Complement)
Mem1111011woo011mmm8086Negate(Two's Complement)
NOP100100008086No Operation
NOTReg1111011woo010mmm8086Negate(One's Complement)
Mem1111011woo010mmm8086Negate(One's Complement)
ORReg,Reg0000101woorrrmmm8086Logical Inclusive OR
Mem,Reg0000100woorrrmmm8086Logical Inclusive OR
Reg,Mem0000101woorrrmmm8086Logical Inclusive OR
Acc,Imm0000110w8086Logical Inclusive OR
Reg,Imm81000001woo001mmm8086Logical Inclusive OR
Mem,Imm81000001woo001mmm8086Logical Inclusive OR
Reg,Imm1000000woo001mmm8086Logical Inclusive OR
Mem,Imm1000000woo001mmm8086Logical Inclusive OR
OUTImm8,Acc1110011w8086Output To Port
DX,Acc1110111w8086Output To Port
OUTSB0110111080186Output Byte
OUTSW0110111180186Output Word
OUTSD0110111180386Output Doubleword
POPRegWord01011rrr8086Pop a Word from the Stack
MemWord10001111oo000mmm8086Pop a Word from the Stack
SegOld00sss1118086Pop a Word from the Stack
Seg0000111110sss00180386Pop a Word from the Stack
POPA0110000180186POP All Registers
POPAD0110000180386POP All Registers - 32-bit Mode
POPF100111018086POP Stack into FLAGS
POPFD1001110180386POP Stack into EFLAGS
PUSHRegWord01010rrr8086Push Operand onto Stack
MemWord11111111oo110mmm8086Push Operand onto Stack
SegOld00sss1108086Push Operand onto Stack
Seg0000111110sss00080386Push Operand onto Stack
Imm80110101080186Push Operand onto Stack
Imm0110100080186Push Operand onto Stack
PUSHWImm160110100080286PUSH Word
PUSHDImm320110100080386PUSH Double Word
PUSHA0110000080186PUSH All Registers
PUSHAD0110000080386PUSH All Registers - 32-bit Mode
PUSHF100111008086PUSH FLAGS
PUSHFD1001110080386PUSH EFLAGS
RCLReg,11101000woo010mmm8086Rotate Left through Carry - Uses CF for Extension
Mem,11101000woo010mmm8086Rotate Left through Carry - Uses CF for Extension
Reg,CL1101001woo010mmm8086Rotate Left through Carry - Uses CF for Extension
Mem,CL1101001woo010mmm8086Rotate Left through Carry - Uses CF for Extension
Reg,Imm81100000woo010mmm80186Rotate Left through Carry - Uses CF for Extension
Mem,Imm81100000woo010mmm80186Rotate Left through Carry - Uses CF for Extension
RCRReg,11101000woo011mmm8086Rotate Right through Carry - Uses CF for Extension
Mem,11101000woo011mmm8086Rotate Right through Carry - Uses CF for Extension
Reg,CL1101001woo011mmm8086Rotate Right through Carry - Uses CF for Extension
Mem,CL1101001woo011mmm8086Rotate Right through Carry - Uses CF for Extension
Reg,Imm81100000woo011mmm80186Rotate Right through Carry - Uses CF for Extension
Mem,Imm81100000woo011mmm80186Rotate Right through Carry - Uses CF for Extension
RDMSR0000111100110010PentiumRead from Model Specific Register
RETNEAR110000118086Return from subprocedure
RETimm NEAR110000108086Return from subprocedure
RETFAR110010118086Return from subprocedure
RETimm FAR110010108086Return from subprocedure
RDPMC0000111100110011PentiumProRead Performance Monitor Counter
ROLReg,11101000woo000mmm8086Rotate Left through Carry - Wrap bits around
Mem,11101000woo000mmm8086Rotate Left through Carry - Wrap bits around
Reg,CL1101001woo000mmm8086Rotate Left through Carry - Wrap bits around
Mem,CL1101001woo000mmm8086Rotate Left through Carry - Wrap bits around
Reg,Imm81100000woo000mmm80186Rotate Left through Carry - Wrap bits around
Mem,Imm81100000woo000mmm80186Rotate Left through Carry - Wrap bits around
RORReg,11101000woo001mmm8086Rotate Right through Carry - Wrap bits around
Mem,11101000woo001mmm8086Rotate Right through Carry - Wrap bits around
Reg,CL1101001woo001mmm8086Rotate Right through Carry - Wrap bits around
Mem,CL1101001woo001mmm8086Rotate Right through Carry - Wrap bits around
Reg,Imm81100000woo001mmm80186Rotate Right through Carry - Wrap bits around
Mem,Imm81100000woo001mmm80186Rotate Right through Carry - Wrap bits around
RSM0000111110101010PentiumReturn from System Management mode
SALC11010110Pentium ProSet AL on Carry
SAHF100111108086Load Flags into AH Register
SALReg,11101000woo100mmm8086Shift Arithmetic Left
Mem,11101000woo100mmm8086Shift Arithmetic Left
Reg,CL1101001woo100mmm8086Shift Arithmetic Left
Mem,CL1101001woo100mmm8086Shift Arithmetic Left
Reg,Imm81100000woo100mmm80186Shift Arithmetic Left
Mem,Imm81100000woo100mmm80186Shift Arithmetic Left
SARReg,11101000woo111mmm8086Shift Arithmetic Right
Mem,11101000woo111mmm8086Shift Arithmetic Right
Reg,CL1101001woo111mmm8086Shift Arithmetic Right
Mem,CL1101001woo111mmm8086Shift Arithmetic Right
Reg,Imm81100000woo111mmm80186Shift Arithmetic Right
Mem,Imm81100000woo111mmm80186Shift Arithmetic Right
SETccReg8000011111001ccccoo000mmm80386Set Byte on Condition Code
Mem8000011111001ccccoo000mmm80386Set Byte on Condition Code
SHLReg,11101000woo100mmm8086Shift Logic Left
Mem,11101000woo100mmm8086Shift Logic Left
Reg,CL1101001woo100mmm8086Shift Logic Left
Mem,CL1101001woo100mmm8086Shift Logic Left
Reg,Imm81100000woo100mmm80186Shift Logic Left
Mem,Imm81100000woo100mmm80186Shift Logic Left
SHRReg,11101000woo101mmm8086Shift Logic Right
Mem,11101000woo101mmm8086Shift Logic Right
Reg,CL1101001woo101mmm8086Shift Logic Right
Mem,CL1101001woo101mmm8086Shift Logic Right
Reg,Imm81100000woo101mmm80186Shift Logic Right
Mem,Imm81100000woo101mmm80186Shift Logic Right
SBBReg,Reg0001101woorrrmmm8086Substract Integers with Borrow
Mem,Reg0001100woorrrmmm8086Substract Integers with Borrow
Reg,Mem0001101woorrrmmm8086Substract Integers with Borrow
Acc,Imm0001110w8086Substract Integers with Borrow
Reg,Imm81000001woo011mmm8086Substract Integers with Borrow
Mem,Imm81000001woo011mmm8086Substract Integers with Borrow
Reg,Imm1000000woo011mmm8086Substract Integers with Borrow
Mem,Imm1000000woo011mmm8086Substract Integers with Borrow
SCASB101011108086Compare Byte
SCASW101011118086Compare Word
SCASD1010111180386Compare Doubleword
SGDTMem640000111100000001oo000mmm80286Store Global Descriptor Table
SHLDRegWord,RegWord,Imm80000111110100100oorrrmmm80386Double Precision Shift Left
MemWord,RegWord,Imm80000111110100100oorrrmmm80386Double Precision Shift Left
RegWord,RegWord,CL0000111110100101oorrrmmm80386Double Precision Shift Left
MemWord,RegWord,CL0000111110100101oorrrmmm80386Double Precision Shift Left
SHRDRegWord,RegWord,Imm80000111110101100oorrrmmm80386Double Precision Shift Right
MemWord,RegWord,Imm80000111110101100oorrrmmm80386Double Precision Shift Right
RegWord,RegWord,CL0000111110101101oorrrmmm80386Double Precision Shift Right
MemWord,RegWord,CL0000111110101101oorrrmmm80386Double Precision Shift Right
SIDTMem640000111100000001oo001mmm80286Store Interrupt Descriptor Table
SLDTReg160000111100000000oo000mmm80286Store Local Descriptor Table Register (LDTR)
Mem160000111100000000oo000mmm80286Store Local Descriptor Table Register (LDTR)
SMSWReg160000111100000001oo100mmm80286Store Machine Status Word
Mem160000111100000001oo100mmm80286Store Machine Status Word
STC111110018086Set Carry Flag(CF)
STD111111018086Set Direction Flag(DF)
STI111110118086Set Interrupt Flag(IF)
STOSB101010108086Store String Data Byte
STOSW101010118086Store String Data Word
STOSD1010101180386Store String Data DoubleWord
STRReg160000111100000000oo001mmm80286Store Task Register
Mem160000111100000000oo001mmm80286Store Task Register
SUBReg,Reg0010101woorrrmmm8086Subtract
Mem,Reg0010100woorrrmmm8086Subtract
Reg,Mem0010101woorrrmmm8086Subtract
Acc,Imm0010110w8086Subtract
Reg,Imm81000001woo101mmm8086Subtract
Mem,Imm81000001woo101mmm8086Subtract
Reg,Imm1000000woo101mmm8086Subtract
Mem,Imm1000000woo101mmm8086Subtract
TESTReg,Reg1000010woorrrmmm8086Test Operands
Mem,Reg1000010woorrrmmm8086Test Operands
Reg,Mem1000010woorrrmmm8086Test Operands
Acc,Imm1010100w8086Test Operands
Reg,Imm1111011woo000mmm8086Test Operands
Mem,Imm1111011woo000mmm8086Test Operands
VERRReg160000111100000000oo100mmm80286Verify Read
Mem160000111100000000oo100mmm80286Verify Read
VERWReg160000111100000000oo101mmm80286Verify Write
Mem160000111100000000oo101mmm80286Verify Write
WAIT100110118086Wait for FPU
WBINVD000011110000100180486Write Back and Invalidate Data Cache
WRMSR0000111100110000PentiumWrite to Model Specific Register
XADDReg,Reg000011111100000woorrrmmm80486Exchange and Add
Mem,Reg000011111100000woorrrmmm80486Exchange and Add
XCHGAccWord,RegWord10010rrr8086Exchange
RegWord,AccWord10010rrr8086Exchange
Reg,Reg1000011woorrrmmm8086Exchange
Mem,Reg1000011woorrrmmm8086Exchange
Reg,Mem1000011woorrrmmm8086Exchange
XLAT110101118086Translate
XORReg,Reg0011001woorrrmmm8086Exclusive-OR
Mem,Reg0011000woorrrmmm8086Exclusive-OR
Reg,Mem0011001woorrrmmm8086Exclusive-OR
Acc,Imm0011010w8086Exclusive-OR
Reg,Imm81000001woo110mmm8086Exclusive-OR
Mem,Imm81000001woo110mmm8086Exclusive-OR
Reg,Imm1000000woo110mmm8086Exclusive-OR
Mem,Imm1000000woo110mmm8086Exclusive-OR
CALLMemFar11111111oo011mmm8086Call a Procedure
Near111010008086Call a Procedure
Far100110108086Call a Procedure
RegWord11111111oo010mmm8086Call a Procedure
MemNear11111111oo010mmm8086Call a Procedure
JccShort0111cccc8086Jump on Some Condition Code
Near000011111000cccc80386Jump on Some Condition Code
JCXZShort111000118086
JCXEShort111000118086
JECXZShort111000118086
JECXEShort111000118086
JMPMemFar11111111oo101mmm8086
Short111010118086
Near111010018086
Far111010108086
RegWord11111111oo100mmm8086
MemNear11111111oo100mmm8086
LOOPShort111000108086Loop Control While ECX Counter Not Zero
LOOPZShort111000018086Loop while Zero
LOOPEShort111000018086Loop while Equal
LOOPNZShort111000008086Loop while Not Zero
LOOPNEShort111000008086Loop while Not Equal
LOCK111100008086Assert Lock# Signal Prefix
LOCK:111100008086Assert Lock# Signal Prefix
REP111100118086Repeat Following String Operation
REPE111100118086Repeat while Equal
REPZ111100118086Repeat while Zero
REPNE111100108086Repeat while Not Equal
REPNZ111100108086Repeat while Not Zero
CS:001011108086CS segment override prefix
DS:001111108086DS segment override prefix
ES:001001108086ES segment override prefix
FS:0110010080386FS segment override prefix
GS:0110010180386GS segment override prefix
SS:001101108086SS segment override prefix


Co-processor instructions :

NameRegsOpcodeProcDescription
F2XM1110110011111000080872^X-1
FABS11011001111000018087Absolute Value of ST
FADDST(0),ST(n)1101100011000rrr8087Addition
ST(n),ST(0)1101110011000rrr8087Addition
ST(0),Mem3211011000oo000mmm8087Addition
Mem3211011000oo000mmm8087Addition
ST(0),Mem6411011100oo000mmm8087Addition
Mem6411011100oo000mmm8087Addition
ST(n)1101110011000rrr8087Addition
11011100110000018087Addition
FADDPST(n),ST(0)11011110oo000mmm8087Addition and Pop
ST(n)11011110oo000mmm8087Addition and Pop
11011110110000018087Addition and Pop
FIADDST(0),Mem1611011110oo000mmm8087Addition (Integer)
Mem1611011110oo000mmm8087Addition (Integer)
ST(0),Mem3211011010oo000mmm8087Addition (Integer)
Mem3211011010oo000mmm8087Addition (Integer)
FCMOVccST(0),ST(n)1101101n110ccrrrPentiumProConditional Move
ST(n)1101101n110ccrrrPentiumProConditional Move
1101101n110cc001PentiumProConditional Move
FCHS11011001111000008087Change Sign
FCLEX[FWAIT] 11011011111000108087Clear Errors
FNCLEX11011011111000108087Clear Errors
FCOMST(0),Mem6411011100oo010mmm8087Compare
Mem6411011100oo010mmm8087Compare
ST(0),ST(n)11011000oo010mmm8087Compare
ST(0),Mem3211011000oo010mmm8087Compare
ST(n)11011000oo010mmm8087Compare
Mem3211011000oo010mmm8087Compare
11011000110100018087Compare
FCOMPST(0),Mem6411011100oo011mmm8087Compare and Pop
Mem6411011100oo011mmm8087Compare and Pop
ST(0),ST(n)11011000oo011mmm8087Compare and Pop
ST(0),Mem3211011000oo011mmm8087Compare and Pop
ST(n)11011000oo011mmm8087Compare and Pop
Mem3211011000oo011mmm8087Compare and Pop
11011000110110018087Compare and Pop
FICOMST(0),Mem1611011110oo010mmm8087Compare (Integer)
Mem1611011110oo010mmm8087Compare (Integer)
ST(0),Mem3211011010oo010mmm8087Compare (Integer)
Mem3211011010oo010mmm8087Compare (Integer)
FICOMPST(0),Mem1611011110oo011mmm8087Compare (Integer) and Pop
Mem1611011110oo011mmm8087Compare (Integer) and Pop
ST(0),Mem3211011010oo011mmm8087Compare (Integer) and Pop
Mem3211011010oo011mmm8087Compare (Integer) and Pop
FCOMIST(0),ST(n)1101101111110rrrPentiumProCompare Integer (EFLAGS)
ST(n)1101101111110rrrPentiumProCompare Integer (EFLAGS)
1101101111110001PentiumProCompare Integer (EFLAGS)
FCOMIPST(0),ST(n)1101111111110rrrPentiumProCompare Integer and Pop (EFLAGS)
ST(n)1101111111110rrrPentiumProCompare Integer and Pop (EFLAGS)
1101111111110001PentiumProCompare Integer and Pop (EFLAGS)
FUCOMIST(0),ST(n)1101101111101rrrPentiumProUnordered Compare Integer (EFLAGS)
ST(n)1101101111101rrrPentiumProUnordered Compare Integer (EFLAGS)
1101101111101001PentiumProUnordered Compare Integer (EFLAGS)
FUCOMIPST(0),ST(n)1101111111101rrrPentiumProUnordered Compare Integer (EFLAGS)
ST(n)1101111111101rrrPentiumProUnordered Compare Integer (EFLAGS)
1101111111101001PentiumProUnordered Compare Integer (EFLAGS)
FUCOMPP11011110110101018086Compare and Pop and Pop
FCOS110110011111111180387Cosine
FDECSTP11011001111101108087Decrement Stack Pointer
FDISI[FWAIT] 11011011111000018087Disable Interrupts
FNDISI11011011111000018087Disable Interrupts
FDIVST(0),ST(n)1101100011110rrr8087Division
ST(n),ST(0)1101110011111rrr8087Division
ST(0),Mem3211011000oo110mmm8087Division
Mem3211011000oo110mmm8087Division
ST(0),Mem6411011100oo110mmm8087Division
Mem6411011100oo110mmm8087Division
ST(n)1101110011111rrr8087Division
11011100111110018087Division
FDIVPST(n),ST(0)11011110oo111mmm8087Division and Pop
ST(n)11011110oo111mmm8087Division and Pop
11011110111110018087Division and Pop
FIDIVST(0),Mem1611011110oo110mmm8087Division (Integer) and Pop
Mem1611011110oo110mmm8087Division (Integer) and Pop
ST(0),Mem3211011010oo110mmm8087Division (Integer) and Pop
Mem3211011010oo110mmm8087Division (Integer) and Pop
FDIVRST(0),ST(n)1101100011111rrr8087Division Reversed
ST(n),ST(0)1101110011110rrr8087Division Reversed
ST(0),Mem3211011000oo111mmm8087Division Reversed
Mem3211011000oo111mmm8087Division Reversed
ST(0),Mem6411011100oo111mmm8087Division Reversed
Mem6411011100oo111mmm8087Division Reversed
ST(n)1101110011110rrr8087Division Reversed
11011100111100018087Division Reversed
FDIVRPST(n),ST(0)11011110oo110mmm8087Division Reversed and Pop
ST(n)11011110oo110mmm8087Division Reversed and Pop
11011110111100018087Division Reversed and Pop
FIDIVRST(0),Mem1611011110oo111mmm8087Division Reversed (Integer)
Mem1611011110oo111mmm8087Division Reversed (Integer)
ST(0),Mem3211011010oo111mmm8087Division Reversed (Integer)
Mem3211011010oo111mmm8087Division Reversed (Integer)
FENI[FWAIT] 11011011111000008087Disable Interrupts
FNENI11011011111000008087Disable Interrupts
FFREEST(n)1101110111000rrr8087Free Register
11011101110000018087Free Register
FINCSTP11011001111101118087Increment Stack Pointer
FINIT[FWAIT] 11011011111000118087Initialize FPU
FNINIT11011011111000118087Initialize FPU
FLDST(0),Mem3211011001oo000mmm8087Load Data
Mem3211011001oo000mmm8087Load Data
ST(0),Mem6411011101oo000mmm8087Load Data
Mem6411011101oo000mmm8087Load Data
ST(0),Mem8011011011oo101mmm8087Load Data
Mem8011011011oo101mmm8087Load Data
ST(0),ST(n)11011001oo000mmm8087Load Data
ST(n)11011001oo000mmm8087Load Data
11011001110000018087Load Data
FILDST(0),Mem1611011111oo000mmm8087Load Data (Integer)
Mem1611011111oo000mmm8087Load Data (Integer)
ST(0),Mem3211011011oo000mmm8087Load Data (Integer)
Mem3211011011oo000mmm8087Load Data (Integer)
ST(0),Mem6411011111oo101mmm8087Load Data (Integer)
Mem6411011111oo101mmm8087Load Data (Integer)
FBLDST(0),Mem8011011111oo100mmm8087Load Data (BCD)
Mem8011011111oo100mmm8087Load Data (BCD)
FLD111011001111010008087Load + 1.0
FLDZ11011001111011108087Load + 0.0
FLDPI11011001111010118087Load PI
FLDL2E11011001111010108087Load log2 e
FLDL2T11011001111010018087Load log2 10
FLDLG211011001111011008087Load log10 2
FLDLN211011001111011018087Load loge 2
FLDCWMem1611011001oo101mmm8087Load Control Register
FLDENVMem11011001oo100mmm8087Load Enviroment
FMULST(0),ST(n)1101100011001rrr8087Multiplication
ST(n),ST(0)1101110011001rrr8087Multiplication
ST(0),Mem3211011000oo001mmm8087Multiplication
Mem3211011000oo001mmm8087Multiplication
ST(0),Mem6411011100oo001mmm8087Multiplication
Mem6411011100oo001mmm8087Multiplication
ST(n)1101110011001rrr8087Multiplication
11011100110010018087Multiplication
FMULPST(n),ST(0)11011110oo001mmm8087Multiplication and Pop
ST(n)11011110oo001mmm8087Multiplication and Pop
11011110110010018087Multiplication and Pop
FIMULST(0),Mem1611011110oo001mmm8087Multiplication (Integer)
Mem1611011110oo001mmm8087Multiplication (Integer)
ST(0),Mem3211011010oo001mmm8087Multiplication (Integer)
Mem3211011010oo001mmm8087Multiplication (Integer)
FNOP11011001110100008087No Operation
FPATAN11011001111100118087Partial Arctangent
FPREM11011001111110008087Partial Remainder
FPREM1110110011111010180387Partial Remainder (IEEE)
FPTAN11011001111100108087Partial Tangent
FRNDINT11011001111111008087Round to Integer
FRSTORMem11211011101oo100mmm8087Restore State
FSAVEMem112[FWAIT] 11011101oo110mmm8087Save Machine State
FNSAVEMem11211011101oo110mmm8087Save Machine State
FSCALE11011001111111018087Scale
FSETPM110110111110010080287Set Protected Mode
FSIN110110011111111080387Sine
FSINCOS110110011111101180387Sine and Cosine
FSQRT11011001111110108087Square Root
FSTMem32,ST(0)11011001oo010mmm8087Store
Mem3211011001oo010mmm8087Store
Mem64,ST(0)11011101oo010mmm8087Store
Mem6411011101oo010mmm8087Store
ST(n),ST(0)11011101oo010mmm8087Store
ST(n)11011101oo010mmm8087Store
11011101110100018087Store
FSTPMem32,ST(0)11011001oo011mmm8087Store and Pop
Mem3211011001oo011mmm8087Store and Pop
Mem64,ST(0)11011101oo011mmm8087Store and Pop
Mem6411011101oo011mmm8087Store and Pop
Mem80,ST(0)11011011oo111mmm8087Store and Pop
Mem8011011011oo111mmm8087Store and Pop
ST(n),ST(0)1101110111011rrr8087Store and Pop
ST(n)1101110111011rrr8087Store and Pop
11011101110110018087Store and Pop
FISTMem16,ST(0)11011111oo010mmm8087Store (Integer)
Mem1611011111oo010mmm8087Store (Integer)
Mem32,ST(0)11011011oo010mmm8087Store (Integer)
Mem3211011011oo010mmm8087Store (Integer)
FISTPMem16,ST(0)11011111oo011mmm8087Store (Integer) and Pop
Mem1611011111oo011mmm8087Store (Integer) and Pop
Mem32,ST(0)11011011oo011mmm8087Store (Integer) and Pop
Mem3211011011oo011mmm8087Store (Integer) and Pop
Mem64,ST(0)11011111oo111mmm8087Store (Integer) and Pop
Mem6411011111oo111mmm8087Store (Integer) and Pop
FBSTPMem80,ST(n)11011111oo110mmm8087Store (BCD) and Pop
Mem8011011111oo110mmm8087Store (BCD) and Pop
FSTCWMem16[FWAIT] 11011001oo111mmm8087Store Control Register
FNSTCWMem1611011001oo111mmm8087Store Control Register
FSTENVMem[FWAIT] 11011001oo110mmm8087Store Environment
FNSTENVMem11011001oo110mmm8087Store Environment
FSTSWMem16[FWAIT] 11011101oo111mmm8087Store Status Register
AX[FWAIT] 11011111111000008087Store Status Register
FNSTSWMem1611011101oo111mmm8087Store Status Register
AX11011111111000008087Store Status Register
FSUBST(0),ST(n)1101100011100rrr8087Subtraction
ST(n),ST(0)1101110011101rrr8087Subtraction
ST(0),Mem3211011000oo100mmm8087Subtraction
Mem3211011000oo100mmm8087Subtraction
ST(0),Mem6411011100oo100mmm8087Subtraction
Mem6411011100oo100mmm8087Subtraction
ST(n)1101110011101rrr8087Subtraction
11011100111010018087Subtraction
FSUBPST(n),ST(0)11011110oo101mmm8087Subtraction and Pop
ST(n)11011110oo101mmm8087Subtraction and Pop
11011110111010018087Subtraction and Pop
FISUBST(0),Mem1611011110oo100mmm8087Subtraction (Integer)
Mem1611011110oo100mmm8087Subtraction (Integer)
ST(0),Mem3211011010oo100mmm8087Subtraction (Integer)
Mem3211011010oo100mmm8087Subtraction (Integer)
FSUBRST(0),ST(n)1101100011101rrr8087Reverse Subtraction
ST(n),ST(0)1101110011100rrr8087Reverse Subtraction
ST(0),Mem3211011000oo101mmm8087Reverse Subtraction
Mem3211011000oo101mmm8087Reverse Subtraction
ST(0),Mem6411011100oo101mmm8087Reverse Subtraction
Mem6411011100oo101mmm8087Reverse Subtraction
ST(n)1101110011100rrr8087Reverse Subtraction
11011100111000018087Reverse Subtraction
FSUBRPST(n),ST(0)11011110oo100mmm8087Reverse Subtraction and Pop
ST(n)11011110oo100mmm8087Reverse Subtraction and Pop
11011110111000018087Reverse Subtraction and Pop
FISUBRST(0),Mem1611011110oo101mmm8087Reverse Subtraction (Integer)
Mem1611011110oo101mmm8087Reverse Subtraction (Integer)
ST(0),Mem3211011010oo101mmm8087Reverse Subtraction (Integer)
Mem3211011010oo101mmm8087Reverse Subtraction (Integer)
FTST11011001111001008087Compare with 0.0
FUCOMST(0),ST(n)1101110111100rrr80387Unordered Compare
ST(n),ST(0)1101110111100rrr80387Unordered Compare
ST(n)1101110111100rrr80387Unordered Compare
110111011110000180387Unordered Compare
FUCOMPST(0),ST(n)1101110111101rrr80387Unordered Compare and Pop
ST(n),ST(0)1101110111101rrr80387Unordered Compare and Pop
ST(n)1101110111101rrr80387Unordered Compare and Pop
110111011110100180387Unordered Compare and Pop
FUCOMPPST(0),ST(n)1101101011101rrr80387Unordered Compare and Pop and Pop
ST(n),ST(0)1101101011101rrr80387Unordered Compare and Pop and Pop
ST(n)1101101011101rrr80387Unordered Compare and Pop and Pop
110110101110100180387Unordered Compare and Pop and Pop
FWAIT100110118086Wait for FPU
FXAM11011001111001018087Examine
FXCHST(0),ST(n)1101100111001rrr8087Exchange with Register
ST(n),ST(0)1101100111001rrr8087Exchange with Register
ST(n)1101100111001rrr8087Exchange with Register
11011001110010018087Exchange with Register
FXTRACT11011001111101008087Extract Components
FYL2X11011001111100018087ST(1) * log2 ST(0)
FYL2XP111011001111110018087ST(1) * log2 (ST(0)+1.0)


Condition codes.

CCCCNameMeansIn short
0000Ooverflowo=1
0001NONot overflowo=0
0010C/B/NAECarry, below, not above nor equalc=1
0011NC/AE/NBNot carry, above or equal, not belowc=0
0100E/ZEqual, zeroz=1
0101NE/NZNot equal, not zeroz=0
0110BE/NABelow or equal, not abovec=1 or z=1
0111A/NBEAbove, not below nor equalc=0 and z=0
1000SSign (negative)s=1
1001NSNot signs=0
1010P/PEParity, parity evenp=1
1011NP/PONot parity, parity oddp=0
1100L/NGELess, not greater nor equals<>o
1101GE/NLGreater or egual, not lesss=o
1110LE/NGLess or equal, not greaterz=1 or s<>o
1111G/NLEGreater, not less nor equalz=0 and s=o


Condition codes for FCMOVcc.

ccnNameMeansIn short
000C/B/NAECarry, below, not above nor equalc=1
001NC/AE/NBNot carry, above or equal, not belowc=0
010E/ZEqual, zeroz=1
011NE/NZNot equal, not zeroz=0
100BE/NABelow or equal, not abovec=1 or z=1
101A/NBEAbove, not below nor equalc=0 and z=0
110UUnorderedC2=1
111NUNot UnorderedC2=0

转载于:https://www.cnblogs.com/cnstalker/p/4829062.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值