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

http://www.shsiyue.com/data/hard/80x86-code-bin.htm

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

返回目录 ]

处理器技术参数:

 Introduction
Date
Clock SpeedsBus WidthNumber of
Transistors
Addressable
Memory
Virtual
Memory
Brief
Description
400411/15/71108 KHz4 bits2,300
(10 microns)
640 bytes
First microcomputer chip,
Arithmetic manipulation
80084/1/72108 KHz8 bits3,50016 KBytes
Data/character manipulation
80804/1/742 MHz8 bits6,000
(6 microns)
64 KBytes
10X the performance of the 8008
80866/8/785 MHz
8 MHz
10 MHz
16 bits29,000
(3 microns)
1 Megabyte
10X the performance of the 8080
80886/1/795 MHz
8 MHz
8 bits29,000
(3 microns)


Identical to 8086 except for its 8-bit external bus
802862/1/828 MHz
10 MHz
12 MHz
16 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 MHz
32 bits275,000
(1 micron)
4 gigabytes64 terabytesFirst X86 chip to handle 32-bit data sets
Intel386(TM)SX Microprocessor6/16/8816 MHz
20 MHz
16 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 MHz
32 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 MHz
32 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
166MHz
32 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
200MHz
32 bits5.5 million
(.32 micron)
4 gigabytes64 terabytesdynamic execution architecture drives high-performing processor 

处理器技术参数:

下表中 oo 的含义为:

  • 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 的含义为:

  • 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 位寻址模式:

oommmrrrDescription
00000 DS:[EAX]
00001 DS:[ECX]
00010 DS:[EDX]
00011 DS:[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]
00101 DS:disp32
00110 DS:[ESI]
00111 DS:[EDI]
01000 DS:[EAX+disp8]
01001 DS:[ECX+disp8]
01010 DS:[EDX+disp8]
01011 DS:[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]
01101 SS:[EBP+disp8]
01110 DS:[ESI+disp8]
01111 DS:[EDI+disp8]
10000 DS:[EAX+disp32]
10001 DS:[ECX+disp32]
10010 DS:[EDX+disp32]
10011 DS:[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]
10101 SS:[EBP+disp32]
10110 DS:[ESI+disp32]
10111 DS:[EDI+disp32]

 


处理器指令集:


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

NameRegsOpcodeProcDescription
AAA 001101118086ASCII 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
AAS 001111118086ASCII 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
CBW 100110008086Convert Byte to Word
CDQ 1001100180386Convert Doubleword to Quad-Word
CLC 111110008086Clear Carry Flag (CF)
CLD 111111008086Clear Direction Flag (DF)
CLI 111110108086Clear Interrupt Flag (IF)
CLTS 000011110000011080286Clear Task-Switched Flag in Control Register Zero
CMC 111101018086Complementer 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
CMPSB 101001108086Compare String - Byte
CMPSW 101001118086Compare String - Word
CMPSD 1010011180386Compare String - Doubleword
CMPXCHGReg,Reg000011111011000woorrrmmm80486Compare and Exchange
 Mem,Reg000011111011000woorrrmmm80486Compare and Exchange
CMPXCHG8BMem640000111111000111oo001mmmPentiumCompare and Exchange 8 Bytes
CPUID 0000111110100010PentiumCPU Identification code to EAX
CWD 100110018086Convert Word to Doubleword
CWDE 1001100080386Convert Word to Extended Doubleword
DAA 001001118086Decimal Adjust Register After Addition
DAS 001011118086Decimal 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
HLT 111101008086Halt
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
INSB 0110110080186Input Byte
INSW 0110110180186Input Word
INSD 0110110180386Input DoubleWord
INT3110011008086Call to Interrupt Procedure
 Imm8110011018086Call to Interrupt Procedure
INTO 110011108086Interrupt on Overflow
INVD 000011110000100080486Invalidate data cache
INVLPGMem0000111100000001oo111mmm80486Invalidate TBL entry
IRET 110011118086Return from Interrupt
IRETD 1100111180386Return from Interrupt - 32-bit Mode
LAHF 100111118086Load 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
LEAVE 1100100180186High 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
LODSB 101011008086Load Byte
LODSW 101011018086Load Word
LODSD 1010110180386Load 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
MOVSB 101001008086Move Byte
MOVSW 101001018086Move Word
MOVSD 1010010180386Move 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)
NOP 100100008086No 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
OUTSB 0110111080186Output Byte
OUTSW 0110111180186Output Word
OUTSD 0110111180386Output 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
POPA 0110000180186POP All Registers
POPAD 0110000180386POP All Registers - 32-bit Mode
POPF 100111018086POP Stack into FLAGS
POPFD 1001110180386POP 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
PUSHA 0110000080186PUSH All Registers
PUSHAD 0110000080386PUSH All Registers - 32-bit Mode
PUSHF 100111008086PUSH FLAGS
PUSHFD 1001110080386PUSH 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
RDMSR 0000111100110010PentiumRead from Model Specific Register
RDTSC 0000111101010001PentiumRead Timwatamp Counter
RETNEAR110000118086Return from subprocedure
RETimm NEAR110000108086Return from subprocedure
RETFAR110010118086Return from subprocedure
RETimm FAR110010108086Return from subprocedure
RDPMC 0000111100110011PentiumProRead 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
RSM 0000111110101010PentiumReturn from System Management mode
SALC 11010110Pentium ProSet AL on Carry
SAHF 100111108086Load 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
SCASB 101011108086Compare Byte
SCASW 101011118086Compare Word
SCASD 1010111180386Compare 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
STC 111110018086Set Carry Flag(CF)
STD 111111018086Set Direction Flag(DF)
STI 111110118086Set Interrupt Flag(IF)
STOSB 101010108086Store String Data Byte
STOSW 101010118086Store String Data Word
STOSD 1010101180386Store 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
WAIT 100110118086Wait for FPU
WBINVD 000011110000100180486Write Back and Invalidate Data Cache
WRMSR 0000111100110000PentiumWrite to Model Specific Register
XADDReg,Reg000011111100000woorrrmmm80486Exchange and Add
 Mem,Reg000011111100000woorrrmmm80486Exchange and Add
XCHGAccWord,RegWord10010rrr8086Exchange
 RegWord,AccWord10010rrr8086Exchange
 Reg,Reg1000011woorrrmmm8086Exchange
 Mem,Reg1000011woorrrmmm8086Exchange
 Reg,Mem1000011woorrrmmm8086Exchange
XLAT 110101118086Translate
XORReg,Reg0011001woorrrmmm8086Exclusive-OR
 Mem,Reg0011000woorrrmmm8086Exclusive-OR
 Reg,Mem0011001woorrrmmm8086Exclusive-OR
 Acc,Imm0011010w8086Exclusive-OR
 Reg,Imm81000001woo110mmm8086Exclusive-OR
 Mem,Imm81000001woo110mmm8086Exclusive-OR
 Reg,Imm1000000woo110mmm8086Exclusive-OR
 Mem,Imm1000000woo110mmm8086Exclusive-OR
CALL<鎜nt face="Comic Sans MS" color="#0000FF">MemFar11111111oo011mmm8086Call 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
LOCK 111100008086Assert Lock# Signal Prefix
LOCK: 111100008086Assert Lock# Signal Prefix
REP 111100118086Repeat Following String Operation
REPE 111100118086Repeat while Equal
REPZ 111100118086Repeat while Zero
REPNE 111100108086Repeat while Not Equal
REPNZ 111100108086Repeat 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


协处理器指令:

NameRegsOpcodeProcDescription
F2XM1 110110011111000080872^X-1
FABS 11011001111000018087Absolute 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
FCHS 11011001111000008087Change Sign
FCLEX [FWAIT] 11011011111000108087Clear Errors
FNCLEX 11011011111000108087Clear 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)
FUCOMPP 11011110110101018086Compare and Pop and Pop
FCOS 110110011111111180387Cosine
FDECSTP 11011001111101108087Decrement Stack Pointer
FDISI [FWAIT] 11011011111000018087Disable Interrupts
FNDISI 11011011111000018087Disable 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
FNENI 11011011111000008087Disable Interrupts
FFREEST(n)1101110111000rrr8087Free Register
  11011101110000018087Free Register
FINCSTP 11011001111101118087Increment Stack Pointer
FINIT [FWAIT] 11011011111000118087Initialize FPU
FNINIT 11011011111000118087Initialize 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)
FLD1 11011001111010008087Load + 1.0
FLDZ 11011001111011108087Load + 0.0
FLDPI 11011001111010118087Load PI
FLDL2E 11011001111010108087Load log2 e
FLDL2T 11011001111010018087Load log2 10
FLDLG2 11011001111011008087Load log10 2
FLDLN2 11011001111011018087Load 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)
FNOP 11011001110100008087No Operation
FPATAN 11011001111100118087Partial Arctangent
FPREM 11011001111110008087Partial Remainder
FPREM1 110110011111010180387Partial Remainder (IEEE)
FPTAN 11011001111100108087Partial Tangent
FRNDINT 11011001111111008087Round to Integer
FRSTORMem11211011101oo100mmm8087Restore State
FSAVEMem112[FWAIT] 11011101oo110mmm8087Save Machine State
FNSAVEMem11211011101oo110mmm8087Save Machine State
FSCALE 11011001111111018087Scale
FSETPM 110110111110010080287Set Protected Mode
FSIN 110110011111111080387Sine
FSINCOS 110110011111101180387Sine and Cosine
FSQRT 11011001111110108087Square 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)
FTST 11011001111001008087Compare 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
FWAIT 100110118086Wait for FPU
FXAM 11011001111001018087Examine
FXCHST(0),ST(n)1101100111001rrr8087Exchange with Register
 ST(n),ST(0)1101100111001rrr8087Exchange with Register
 ST(n)1101100111001rrr8087Exchange with Register
  11011001110010018087Exchange with Register
FXTRACT 11011001111101008087Extract Components
FYL2X 11011001111100018087ST(1) * log2 ST(0)
FYL2XP1 11011001111110018087ST(1) * log2 (ST(0)+1.0)

 

条件代码:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值