-
-
[旧帖] [分享]80x86 opcodes 0.00雪花
-
发表于: 2012-8-11 15:30 1064
-
找了好久,终于找到个比较全的,分享给大家
Technical Specifications
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
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
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]
Main Instructions
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
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 Shift Logic Left
Mem,1 1101000woo100mmm 8086 Shift Logic Left
Reg,CL 1101001woo100mmm 8086 Shift Logic Left
Mem,CL 1101001woo100mmm 8086 Shift Logic Left
Reg,Imm8 1100000woo100mmm 80186 Shift Logic Left
Mem,Imm8 1100000woo100mmm 80186 Shift Logic Left
SHR Reg,1 1101000woo101mmm 8086 Shift Logic Right
Mem,1 1101000woo101mmm 8086 Shift Logic Right
Reg,CL 1101001woo101mmm 8086 Shift Logic Right
Mem,CL 1101001woo101mmm 8086 Shift Logic Right
Reg,Imm8 1100000woo101mmm 80186 Shift Logic Right
Mem,Imm8 1100000woo101mmm 80186 Shift Logic Right
SBB Reg,Reg 0001101woorrrmmm 8086 Substract Integers with Borrow
Mem,Reg 0001100woorrrmmm 8086 Substract Integers with Borrow
Reg,Mem 0001101woorrrmmm 8086 Substract Integers with Borrow
Acc,Imm 0001110w 8086 Substract Integers with Borrow
Reg,Imm8 1000001woo011mmm 8086 Substract Integers with Borrow
Mem,Imm8 1000001woo011mmm 8086 Substract Integers with Borrow
Reg,Imm 1000000woo011mmm 8086 Substract Integers with Borrow
Mem,Imm 1000000woo011mmm 8086 Substract Integers with Borrow
SCASB 10101110 8086 Compare Byte
SCASW 10101111 8086 Compare Word
SCASD 10101111 80386 Compare Doubleword
SGDT Mem64 0000111100000001oo000mmm 80286 Store Global Descriptor Table
SHLD RegWord,RegWord,Imm8 0000111110100100oorrrmmm 80386 Double Precision Shift Left
MemWord,RegWord,Imm8 0000111110100100oorrrmmm 80386 Double Precision Shift Left
RegWord,RegWord,CL 0000111110100101oorrrmmm 80386 Double Precision Shift Left
MemWord,RegWord,CL 0000111110100101oorrrmmm 80386 Double Precision Shift Left
SHRD RegWord,RegWord,Imm8 0000111110101100oorrrmmm 80386 Double Precision Shift Right
MemWord,RegWord,Imm8 0000111110101100oorrrmmm 80386 Double Precision Shift Right
RegWord,RegWord,CL 0000111110101101oorrrmmm 80386 Double Precision Shift Right
MemWord,RegWord,CL 0000111110101101oorrrmmm 80386 Double Precision Shift Right
SIDT Mem64 0000111100000001oo001mmm 80286 Store Interrupt Descriptor Table
SLDT Reg16 0000111100000000oo000mmm 80286 Store Local Descriptor Table Register (LDTR)
Mem16 0000111100000000oo000mmm 80286 Store Local Descriptor Table Register (LDTR)
SMSW Reg16 0000111100000001oo100mmm 80286 Store Machine Status Word
Mem16 0000111100000001oo100mmm 80286 Store Machine Status Word
STC 11111001 8086 Set Carry Flag(CF)
STD 11111101 8086 Set Direction Flag(DF)
STI 11111011 8086 Set Interrupt Flag(IF)
STOSB 10101010 8086 Store String Data Byte
STOSW 10101011 8086 Store String Data Word
STOSD 10101011 80386 Store String Data DoubleWord
STR Reg16 0000111100000000oo001mmm 80286 Store Task Register
Mem16 0000111100000000oo001mmm 80286 Store Task Register
SUB Reg,Reg 0010101woorrrmmm 8086 Subtract
Mem,Reg 0010100woorrrmmm 8086 Subtract
Reg,Mem 0010101woorrrmmm 8086 Subtract
Acc,Imm 0010110w 8086 Subtract
Reg,Imm8 1000001woo101mmm 8086 Subtract
Mem,Imm8 1000001woo101mmm 8086 Subtract
Reg,Imm 1000000woo101mmm 8086 Subtract
Mem,Imm 1000000woo101mmm 8086 Subtract
TEST Reg,Reg 1000010woorrrmmm 8086 Test Operands
Mem,Reg 1000010woorrrmmm 8086 Test Operands
Reg,Mem 1000010woorrrmmm 8086 Test Operands
Acc,Imm 1010100w 8086 Test Operands
Reg,Imm 1111011woo000mmm 8086 Test Operands
Mem,Imm 1111011woo000mmm 8086 Test Operands
VERR Reg16 0000111100000000oo100mmm 80286 Verify Read
Mem16 0000111100000000oo100mmm 80286 Verify Read
VERW Reg16 0000111100000000oo101mmm 80286 Verify Write
Mem16 0000111100000000oo101mmm 80286 Verify Write
WAIT 10011011 8086 Wait for FPU
WBINVD 0000111100001001 80486 Write Back and Invalidate Data Cache
WRMSR 0000111100110000 Pentium Write to Model Specific Register
XADD Reg,Reg 000011111100000woorrrmmm 80486 Exchange and Add
Mem,Reg 000011111100000woorrrmmm 80486 Exchange and Add
XCHG AccWord,RegWord 10010rrr 8086 Exchange
RegWord,AccWord 10010rrr 8086 Exchange
Reg,Reg 1000011woorrrmmm 8086 Exchange
Mem,Reg 1000011woorrrmmm 8086 Exchange
Reg,Mem 1000011woorrrmmm 8086 Exchange
XLAT 11010111 8086 Translate
XOR Reg,Reg 0011001woorrrmmm 8086 Exclusive-OR
Mem,Reg 0011000woorrrmmm 8086 Exclusive-OR
Reg,Mem 0011001woorrrmmm 8086 Exclusive-OR
Acc,Imm 0011010w 8086 Exclusive-OR
Reg,Imm8 1000001woo110mmm 8086 Exclusive-OR
Mem,Imm8 1000001woo110mmm 8086 Exclusive-OR
Reg,Imm 1000000woo110mmm 8086 Exclusive-OR
Mem,Imm 1000000woo110mmm 8086 Exclusive-OR
CALL MemFar 11111111oo011mmm 8086 Call a Procedure
Near 11101000 8086 Call a Procedure
Far 10011010 8086 Call a Procedure
RegWord 11111111oo010mmm 8086 Call a Procedure
MemNear 11111111oo010mmm 8086 Call a Procedure
Jcc Short 0111cccc 8086 Jump on Some Condition Code
Near 000011111000cccc 80386 Jump on Some Condition Code
JCXZ Short 11100011 8086
JCXE Short 11100011 8086
JECXZ Short 11100011 8086
JECXE Short 11100011 8086
JMP MemFar 11111111oo101mmm 8086
Short 11101011 8086
Near 11101001 8086
Far 11101010 8086
RegWord 11111111oo100mmm 8086
MemNear 11111111oo100mmm 8086
LOOP Short 11100010 8086 Loop Control While ECX Counter Not Zero
LOOPZ Short 11100001 8086 Loop while Zero
LOOPE Short 11100001 8086 Loop while Equal
LOOPNZ Short 11100000 8086 Loop while Not Zero
LOOPNE Short 11100000 8086 Loop while Not Equal
LOCK 11110000 8086 Assert Lock# Signal Prefix
LOCK: 11110000 8086 Assert Lock# Signal Prefix
REP 11110011 8086 Repeat Following String Operation
REPE 11110011 8086 Repeat while Equal
REPZ 11110011 8086 Repeat while Zero
REPNE 11110010 8086 Repeat while Not Equal
REPNZ 11110010 8086 Repeat while Not Zero
CS: 00101110 8086 CS segment override prefix
DS: 00111110 8086 DS segment override prefix
ES: 00100110 8086 ES segment override prefix
FS: 01100100 80386 FS segment override prefix
GS: 01100101 80386 GS segment override prefix
SS: 00110110 8086 SS segment override prefix
Co-processor instructions :
Name Regs Opcode Proc Description
F2XM1 1101100111110000 8087 2^X-1
FABS 1101100111100001 8087 Absolute Value of ST
FADD ST(0),ST(n) 1101100011000rrr 8087 Addition
ST(n),ST(0) 1101110011000rrr 8087 Addition
ST(0),Mem32 11011000oo000mmm 8087 Addition
Mem32 11011000oo000mmm 8087 Addition
ST(0),Mem64 11011100oo000mmm 8087 Addition
Mem64 11011100oo000mmm 8087 Addition
ST(n) 1101110011000rrr 8087 Addition
1101110011000001 8087 Addition
FADDP ST(n),ST(0) 11011110oo000mmm 8087 Addition and Pop
ST(n) 11011110oo000mmm 8087 Addition and Pop
1101111011000001 8087 Addition and Pop
FIADD ST(0),Mem16 11011110oo000mmm 8087 Addition (Integer)
Mem16 11011110oo000mmm 8087 Addition (Integer)
ST(0),Mem32 11011010oo000mmm 8087 Addition (Integer)
Mem32 11011010oo000mmm 8087 Addition (Integer)
FCMOVcc ST(0),ST(n) 1101101n110ccrrr PentiumPro Conditional Move
ST(n) 1101101n110ccrrr PentiumPro Conditional Move
1101101n110cc001 PentiumPro Conditional Move
FCHS 1101100111100000 8087 Change Sign
FCLEX [FWAIT] 1101101111100010 8087 Clear Errors
FNCLEX 1101101111100010 8087 Clear Errors
FCOM ST(0),Mem64 11011100oo010mmm 8087 Compare
Mem64 11011100oo010mmm 8087 Compare
ST(0),ST(n) 11011000oo010mmm 8087 Compare
ST(0),Mem32 11011000oo010mmm 8087 Compare
ST(n) 11011000oo010mmm 8087 Compare
Mem32 11011000oo010mmm 8087 Compare
1101100011010001 8087 Compare
FCOMP ST(0),Mem64 11011100oo011mmm 8087 Compare and Pop
Mem64 11011100oo011mmm 8087 Compare and Pop
ST(0),ST(n) 11011000oo011mmm 8087 Compare and Pop
ST(0),Mem32 11011000oo011mmm 8087 Compare and Pop
ST(n) 11011000oo011mmm 8087 Compare and Pop
Mem32 11011000oo011mmm 8087 Compare and Pop
1101100011011001 8087 Compare and Pop
FICOM ST(0),Mem16 11011110oo010mmm 8087 Compare (Integer)
Mem16 11011110oo010mmm 8087 Compare (Integer)
ST(0),Mem32 11011010oo010mmm 8087 Compare (Integer)
Mem32 11011010oo010mmm 8087 Compare (Integer)
FICOMP ST(0),Mem16 11011110oo011mmm 8087 Compare (Integer) and Pop
Mem16 11011110oo011mmm 8087 Compare (Integer) and Pop
ST(0),Mem32 11011010oo011mmm 8087 Compare (Integer) and Pop
Mem32 11011010oo011mmm 8087 Compare (Integer) and Pop
FCOMI ST(0),ST(n) 1101101111110rrr PentiumPro Compare Integer (EFLAGS)
ST(n) 1101101111110rrr PentiumPro Compare Integer (EFLAGS)
1101101111110001 PentiumPro Compare Integer (EFLAGS)
FCOMIP ST(0),ST(n) 1101111111110rrr PentiumPro Compare Integer and Pop (EFLAGS)
ST(n) 1101111111110rrr PentiumPro Compare Integer and Pop (EFLAGS)
1101111111110001 PentiumPro Compare Integer and Pop (EFLAGS)
FUCOMI ST(0),ST(n) 1101101111101rrr PentiumPro Unordered Compare Integer (EFLAGS)
ST(n) 1101101111101rrr PentiumPro Unordered Compare Integer (EFLAGS)
1101101111101001 PentiumPro Unordered Compare Integer (EFLAGS)
FUCOMIP ST(0),ST(n) 1101111111101rrr PentiumPro Unordered Compare Integer (EFLAGS)
ST(n) 1101111111101rrr PentiumPro Unordered Compare Integer (EFLAGS)
1101111111101001 PentiumPro Unordered Compare Integer (EFLAGS)
FUCOMPP 1101111011010101 8086 Compare and Pop and Pop
FCOS 1101100111111111 80387 Cosine
FDECSTP 1101100111110110 8087 Decrement Stack Pointer
FDISI [FWAIT] 1101101111100001 8087 Disable Interrupts
FNDISI 1101101111100001 8087 Disable Interrupts
FDIV ST(0),ST(n) 1101100011110rrr 8087 Division
ST(n),ST(0) 1101110011111rrr 8087 Division
ST(0),Mem32 11011000oo110mmm 8087 Division
Mem32 11011000oo110mmm 8087 Division
ST(0),Mem64 11011100oo110mmm 8087 Division
Mem64 11011100oo110mmm 8087 Division
ST(n) 1101110011111rrr 8087 Division
1101110011111001 8087 Division
FDIVP ST(n),ST(0) 11011110oo111mmm 8087 Division and Pop
ST(n) 11011110oo111mmm 8087 Division and Pop
1101111011111001 8087 Division and Pop
FIDIV ST(0),Mem16 11011110oo110mmm 8087 Division (Integer) and Pop
Mem16 11011110oo110mmm 8087 Division (Integer) and Pop
ST(0),Mem32 11011010oo110mmm 8087 Division (Integer) and Pop
Mem32 11011010oo110mmm 8087 Division (Integer) and Pop
FDIVR ST(0),ST(n) 1101100011111rrr 8087 Division Reversed
ST(n),ST(0) 1101110011110rrr 8087 Division Reversed
ST(0),Mem32 11011000oo111mmm 8087 Division Reversed
Mem32 11011000oo111mmm 8087 Division Reversed
ST(0),Mem64 11011100oo111mmm 8087 Division Reversed
Mem64 11011100oo111mmm 8087 Division Reversed
ST(n) 1101110011110rrr 8087 Division Reversed
1101110011110001 8087 Division Reversed
FDIVRP ST(n),ST(0) 11011110oo110mmm 8087 Division Reversed and Pop
ST(n) 11011110oo110mmm 8087 Division Reversed and Pop
1101111011110001 8087 Division Reversed and Pop
FIDIVR ST(0),Mem16 11011110oo111mmm 8087 Division Reversed (Integer)
Mem16 11011110oo111mmm 8087 Division Reversed (Integer)
ST(0),Mem32 11011010oo111mmm 8087 Division Reversed (Integer)
Mem32 11011010oo111mmm 8087 Division Reversed (Integer)
FENI [FWAIT] 1101101111100000 8087 Disable Interrupts
FNENI 1101101111100000 8087 Disable Interrupts
FFREE ST(n) 1101110111000rrr 8087 Free Register
1101110111000001 8087 Free Register
FINCSTP 1101100111110111 8087 Increment Stack Pointer
FINIT [FWAIT] 1101101111100011 8087 Initialize FPU
FNINIT 1101101111100011 8087 Initialize FPU
FLD ST(0),Mem32 11011001oo000mmm 8087 Load Data
Mem32 11011001oo000mmm 8087 Load Data
ST(0),Mem64 11011101oo000mmm 8087 Load Data
Mem64 11011101oo000mmm 8087 Load Data
ST(0),Mem80 11011011oo101mmm 8087 Load Data
Mem80 11011011oo101mmm 8087 Load Data
ST(0),ST(n) 11011001oo000mmm 8087 Load Data
ST(n) 11011001oo000mmm 8087 Load Data
1101100111000001 8087 Load Data
FILD ST(0),Mem16 11011111oo000mmm 8087 Load Data (Integer)
Mem16 11011111oo000mmm 8087 Load Data (Integer)
ST(0),Mem32 11011011oo000mmm 8087 Load Data (Integer)
Mem32 11011011oo000mmm 8087 Load Data (Integer)
ST(0),Mem64 11011111oo101mmm 8087 Load Data (Integer)
Mem64 11011111oo101mmm 8087 Load Data (Integer)
FBLD ST(0),Mem80 11011111oo100mmm 8087 Load Data (BCD)
Mem80 11011111oo100mmm 8087 Load Data (BCD)
FLD1 1101100111101000 8087 Load + 1.0
FLDZ 1101100111101110 8087 Load + 0.0
FLDPI 1101100111101011 8087 Load PI
FLDL2E 1101100111101010 8087 Load log2 e
FLDL2T 1101100111101001 8087 Load log2 10
FLDLG2 1101100111101100 8087 Load log10 2
FLDLN2 1101100111101101 8087 Load loge 2
FLDCW Mem16 11011001oo101mmm 8087 Load Control Register
FLDENV Mem 11011001oo100mmm 8087 Load Enviroment
FMUL ST(0),ST(n) 1101100011001rrr 8087 Multiplication
ST(n),ST(0) 1101110011001rrr 8087 Multiplication
ST(0),Mem32 11011000oo001mmm 8087 Multiplication
Mem32 11011000oo001mmm 8087 Multiplication
ST(0),Mem64 11011100oo001mmm 8087 Multiplication
Mem64 11011100oo001mmm 8087 Multiplication
ST(n) 1101110011001rrr 8087 Multiplication
1101110011001001 8087 Multiplication
FMULP ST(n),ST(0) 11011110oo001mmm 8087 Multiplication and Pop
ST(n) 11011110oo001mmm 8087 Multiplication and Pop
1101111011001001 8087 Multiplication and Pop
FIMUL ST(0),Mem16 11011110oo001mmm 8087 Multiplication (Integer)
Mem16 11011110oo001mmm 8087 Multiplication (Integer)
ST(0),Mem32 11011010oo001mmm 8087 Multiplication (Integer)
Mem32 11011010oo001mmm 8087 Multiplication (Integer)
FNOP 1101100111010000 8087 No Operation
FPATAN 1101100111110011 8087 Partial Arctangent
FPREM 1101100111111000 8087 Partial Remainder
FPREM1 1101100111110101 80387 Partial Remainder (IEEE)
FPTAN 1101100111110010 8087 Partial Tangent
FRNDINT 1101100111111100 8087 Round to Integer
FRSTOR Mem112 11011101oo100mmm 8087 Restore State
FSAVE Mem112 [FWAIT] 11011101oo110mmm 8087 Save Machine State
FNSAVE Mem112 11011101oo110mmm 8087 Save Machine State
FSCALE 1101100111111101 8087 Scale
FSETPM 1101101111100100 80287 Set Protected Mode
FSIN 1101100111111110 80387 Sine
FSINCOS 1101100111111011 80387 Sine and Cosine
FSQRT 1101100111111010 8087 Square Root
FST Mem32,ST(0) 11011001oo010mmm 8087 Store
Mem32 11011001oo010mmm 8087 Store
Mem64,ST(0) 11011101oo010mmm 8087 Store
Mem64 11011101oo010mmm 8087 Store
ST(n),ST(0) 11011101oo010mmm 8087 Store
ST(n) 11011101oo010mmm 8087 Store
1101110111010001 8087 Store
FSTP Mem32,ST(0) 11011001oo011mmm 8087 Store and Pop
Mem32 11011001oo011mmm 8087 Store and Pop
Mem64,ST(0) 11011101oo011mmm 8087 Store and Pop
Mem64 11011101oo011mmm 8087 Store and Pop
Mem80,ST(0) 11011011oo111mmm 8087 Store and Pop
Mem80 11011011oo111mmm 8087 Store and Pop
ST(n),ST(0) 1101110111011rrr 8087 Store and Pop
ST(n) 1101110111011rrr 8087 Store and Pop
1101110111011001 8087 Store and Pop
FIST Mem16,ST(0) 11011111oo010mmm 8087 Store (Integer)
Mem16 11011111oo010mmm 8087 Store (Integer)
Mem32,ST(0) 11011011oo010mmm 8087 Store (Integer)
Mem32 11011011oo010mmm 8087 Store (Integer)
FISTP Mem16,ST(0) 11011111oo011mmm 8087 Store (Integer) and Pop
Mem16 11011111oo011mmm 8087 Store (Integer) and Pop
Mem32,ST(0) 11011011oo011mmm 8087 Store (Integer) and Pop
Mem32 11011011oo011mmm 8087 Store (Integer) and Pop
Mem64,ST(0) 11011111oo111mmm 8087 Store (Integer) and Pop
Mem64 11011111oo111mmm 8087 Store (Integer) and Pop
FBSTP Mem80,ST(n) 11011111oo110mmm 8087 Store (BCD) and Pop
Mem80 11011111oo110mmm 8087 Store (BCD) and Pop
FSTCW Mem16 [FWAIT] 11011001oo111mmm 8087 Store Control Register
FNSTCW Mem16 11011001oo111mmm 8087 Store Control Register
FSTENV Mem [FWAIT] 11011001oo110mmm 8087 Store Environment
FNSTENV Mem 11011001oo110mmm 8087 Store Environment
FSTSW Mem16 [FWAIT] 11011101oo111mmm 8087 Store Status Register
AX [FWAIT] 1101111111100000 8087 Store Status Register
FNSTSW Mem16 11011101oo111mmm 8087 Store Status Register
AX 1101111111100000 8087 Store Status Register
FSUB ST(0),ST(n) 1101100011100rrr 8087 Subtraction
ST(n),ST(0) 1101110011101rrr 8087 Subtraction
ST(0),Mem32 11011000oo100mmm 8087 Subtraction
Mem32 11011000oo100mmm 8087 Subtraction
ST(0),Mem64 11011100oo100mmm 8087 Subtraction
Mem64 11011100oo100mmm 8087 Subtraction
ST(n) 1101110011101rrr 8087 Subtraction
1101110011101001 8087 Subtraction
FSUBP ST(n),ST(0) 11011110oo101mmm 8087 Subtraction and Pop
ST(n) 11011110oo101mmm 8087 Subtraction and Pop
1101111011101001 8087 Subtraction and Pop
FISUB ST(0),Mem16 11011110oo100mmm 8087 Subtraction (Integer)
Mem16 11011110oo100mmm 8087 Subtraction (Integer)
ST(0),Mem32 11011010oo100mmm 8087 Subtraction (Integer)
Mem32 11011010oo100mmm 8087 Subtraction (Integer)
FSUBR ST(0),ST(n) 1101100011101rrr 8087 Reverse Subtraction
ST(n),ST(0) 1101110011100rrr 8087 Reverse Subtraction
ST(0),Mem32 11011000oo101mmm 8087 Reverse Subtraction
Mem32 11011000oo101mmm 8087 Reverse Subtraction
ST(0),Mem64 11011100oo101mmm 8087 Reverse Subtraction
Mem64 11011100oo101mmm 8087 Reverse Subtraction
ST(n) 1101110011100rrr 8087 Reverse Subtraction
1101110011100001 8087 Reverse Subtraction
FSUBRP ST(n),ST(0) 11011110oo100mmm 8087 Reverse Subtraction and Pop
ST(n) 11011110oo100mmm 8087 Reverse Subtraction and Pop
1101111011100001 8087 Reverse Subtraction and Pop
FISUBR ST(0),Mem16 11011110oo101mmm 8087 Reverse Subtraction (Integer)
Mem16 11011110oo101mmm 8087 Reverse Subtraction (Integer)
ST(0),Mem32 11011010oo101mmm 8087 Reverse Subtraction (Integer)
Mem32 11011010oo101mmm 8087 Reverse Subtraction (Integer)
FTST 1101100111100100 8087 Compare with 0.0
FUCOM ST(0),ST(n) 1101110111100rrr 80387 Unordered Compare
ST(n),ST(0) 1101110111100rrr 80387 Unordered Compare
ST(n) 1101110111100rrr 80387 Unordered Compare
1101110111100001 80387 Unordered Compare
FUCOMP ST(0),ST(n) 1101110111101rrr 80387 Unordered Compare and Pop
ST(n),ST(0) 1101110111101rrr 80387 Unordered Compare and Pop
ST(n) 1101110111101rrr 80387 Unordered Compare and Pop
1101110111101001 80387 Unordered Compare and Pop
FUCOMPP ST(0),ST(n) 1101101011101rrr 80387 Unordered Compare and Pop and Pop
ST(n),ST(0) 1101101011101rrr 80387 Unordered Compare and Pop and Pop
ST(n) 1101101011101rrr 80387 Unordered Compare and Pop and Pop
1101101011101001 80387 Unordered Compare and Pop and Pop
FWAIT 10011011 8086 Wait for FPU
FXAM 1101100111100101 8087 Examine
FXCH ST(0),ST(n) 1101100111001rrr 8087 Exchange with Register
ST(n),ST(0) 1101100111001rrr 8087 Exchange with Register
ST(n) 1101100111001rrr 8087 Exchange with Register
1101100111001001 8087 Exchange with Register
FXTRACT 1101100111110100 8087 Extract Components
FYL2X 1101100111110001 8087 ST(1) * log2 ST(0)
FYL2XP1 1101100111111001 8087 ST(1) * log2 (ST(0)+1.0)
Condition codes.
CCCC Name Means In short
0000 O overflow o=1
0001 NO Not overflow o=0
0010 C/B/NAE Carry, below, not above nor equal c=1
0011 NC/AE/NB Not carry, above or equal, not below c=0
0100 E/Z Equal, zero z=1
0101 NE/NZ Not equal, not zero z=0
0110 BE/NA Below or equal, not above c=1 or z=1
0111 A/NBE Above, not below nor equal c=0 and z=0
1000 S Sign (negative) s=1
1001 NS Not sign s=0
1010 P/PE Parity, parity even p=1
1011 NP/PO Not parity, parity odd p=0
1100 L/NGE Less, not greater nor equal s<>o
1101 GE/NL Greater or egual, not less s=o
1110 LE/NG Less or equal, not greater z=1 or s<>o
1111 G/NLE Greater, not less nor equal z=0 and s=o
Condition codes for FCMOVcc.
cc n Name Means In short
00 0 C/B/NAE Carry, below, not above nor equal c=1
00 1 NC/AE/NB Not carry, above or equal, not below c=0
01 0 E/Z Equal, zero z=1
01 1 NE/NZ Not equal, not zero z=0
10 0 BE/NA Below or equal, not above c=1 or z=1
10 1 A/NBE Above, not below nor equal c=0 and z=0
11 0 U Unordered C2=1
11 1 NU Not Unordered C2=0
Technical Specifications
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
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
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]
Main Instructions
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
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 Shift Logic Left
Mem,1 1101000woo100mmm 8086 Shift Logic Left
Reg,CL 1101001woo100mmm 8086 Shift Logic Left
Mem,CL 1101001woo100mmm 8086 Shift Logic Left
Reg,Imm8 1100000woo100mmm 80186 Shift Logic Left
Mem,Imm8 1100000woo100mmm 80186 Shift Logic Left
SHR Reg,1 1101000woo101mmm 8086 Shift Logic Right
Mem,1 1101000woo101mmm 8086 Shift Logic Right
Reg,CL 1101001woo101mmm 8086 Shift Logic Right
Mem,CL 1101001woo101mmm 8086 Shift Logic Right
Reg,Imm8 1100000woo101mmm 80186 Shift Logic Right
Mem,Imm8 1100000woo101mmm 80186 Shift Logic Right
SBB Reg,Reg 0001101woorrrmmm 8086 Substract Integers with Borrow
Mem,Reg 0001100woorrrmmm 8086 Substract Integers with Borrow
Reg,Mem 0001101woorrrmmm 8086 Substract Integers with Borrow
Acc,Imm 0001110w 8086 Substract Integers with Borrow
Reg,Imm8 1000001woo011mmm 8086 Substract Integers with Borrow
Mem,Imm8 1000001woo011mmm 8086 Substract Integers with Borrow
Reg,Imm 1000000woo011mmm 8086 Substract Integers with Borrow
Mem,Imm 1000000woo011mmm 8086 Substract Integers with Borrow
SCASB 10101110 8086 Compare Byte
SCASW 10101111 8086 Compare Word
SCASD 10101111 80386 Compare Doubleword
SGDT Mem64 0000111100000001oo000mmm 80286 Store Global Descriptor Table
SHLD RegWord,RegWord,Imm8 0000111110100100oorrrmmm 80386 Double Precision Shift Left
MemWord,RegWord,Imm8 0000111110100100oorrrmmm 80386 Double Precision Shift Left
RegWord,RegWord,CL 0000111110100101oorrrmmm 80386 Double Precision Shift Left
MemWord,RegWord,CL 0000111110100101oorrrmmm 80386 Double Precision Shift Left
SHRD RegWord,RegWord,Imm8 0000111110101100oorrrmmm 80386 Double Precision Shift Right
MemWord,RegWord,Imm8 0000111110101100oorrrmmm 80386 Double Precision Shift Right
RegWord,RegWord,CL 0000111110101101oorrrmmm 80386 Double Precision Shift Right
MemWord,RegWord,CL 0000111110101101oorrrmmm 80386 Double Precision Shift Right
SIDT Mem64 0000111100000001oo001mmm 80286 Store Interrupt Descriptor Table
SLDT Reg16 0000111100000000oo000mmm 80286 Store Local Descriptor Table Register (LDTR)
Mem16 0000111100000000oo000mmm 80286 Store Local Descriptor Table Register (LDTR)
SMSW Reg16 0000111100000001oo100mmm 80286 Store Machine Status Word
Mem16 0000111100000001oo100mmm 80286 Store Machine Status Word
STC 11111001 8086 Set Carry Flag(CF)
STD 11111101 8086 Set Direction Flag(DF)
STI 11111011 8086 Set Interrupt Flag(IF)
STOSB 10101010 8086 Store String Data Byte
STOSW 10101011 8086 Store String Data Word
STOSD 10101011 80386 Store String Data DoubleWord
STR Reg16 0000111100000000oo001mmm 80286 Store Task Register
Mem16 0000111100000000oo001mmm 80286 Store Task Register
SUB Reg,Reg 0010101woorrrmmm 8086 Subtract
Mem,Reg 0010100woorrrmmm 8086 Subtract
Reg,Mem 0010101woorrrmmm 8086 Subtract
Acc,Imm 0010110w 8086 Subtract
Reg,Imm8 1000001woo101mmm 8086 Subtract
Mem,Imm8 1000001woo101mmm 8086 Subtract
Reg,Imm 1000000woo101mmm 8086 Subtract
Mem,Imm 1000000woo101mmm 8086 Subtract
TEST Reg,Reg 1000010woorrrmmm 8086 Test Operands
Mem,Reg 1000010woorrrmmm 8086 Test Operands
Reg,Mem 1000010woorrrmmm 8086 Test Operands
Acc,Imm 1010100w 8086 Test Operands
Reg,Imm 1111011woo000mmm 8086 Test Operands
Mem,Imm 1111011woo000mmm 8086 Test Operands
VERR Reg16 0000111100000000oo100mmm 80286 Verify Read
Mem16 0000111100000000oo100mmm 80286 Verify Read
VERW Reg16 0000111100000000oo101mmm 80286 Verify Write
Mem16 0000111100000000oo101mmm 80286 Verify Write
WAIT 10011011 8086 Wait for FPU
WBINVD 0000111100001001 80486 Write Back and Invalidate Data Cache
WRMSR 0000111100110000 Pentium Write to Model Specific Register
XADD Reg,Reg 000011111100000woorrrmmm 80486 Exchange and Add
Mem,Reg 000011111100000woorrrmmm 80486 Exchange and Add
XCHG AccWord,RegWord 10010rrr 8086 Exchange
RegWord,AccWord 10010rrr 8086 Exchange
Reg,Reg 1000011woorrrmmm 8086 Exchange
Mem,Reg 1000011woorrrmmm 8086 Exchange
Reg,Mem 1000011woorrrmmm 8086 Exchange
XLAT 11010111 8086 Translate
XOR Reg,Reg 0011001woorrrmmm 8086 Exclusive-OR
Mem,Reg 0011000woorrrmmm 8086 Exclusive-OR
Reg,Mem 0011001woorrrmmm 8086 Exclusive-OR
Acc,Imm 0011010w 8086 Exclusive-OR
Reg,Imm8 1000001woo110mmm 8086 Exclusive-OR
Mem,Imm8 1000001woo110mmm 8086 Exclusive-OR
Reg,Imm 1000000woo110mmm 8086 Exclusive-OR
Mem,Imm 1000000woo110mmm 8086 Exclusive-OR
CALL MemFar 11111111oo011mmm 8086 Call a Procedure
Near 11101000 8086 Call a Procedure
Far 10011010 8086 Call a Procedure
RegWord 11111111oo010mmm 8086 Call a Procedure
MemNear 11111111oo010mmm 8086 Call a Procedure
Jcc Short 0111cccc 8086 Jump on Some Condition Code
Near 000011111000cccc 80386 Jump on Some Condition Code
JCXZ Short 11100011 8086
JCXE Short 11100011 8086
JECXZ Short 11100011 8086
JECXE Short 11100011 8086
JMP MemFar 11111111oo101mmm 8086
Short 11101011 8086
Near 11101001 8086
Far 11101010 8086
RegWord 11111111oo100mmm 8086
MemNear 11111111oo100mmm 8086
LOOP Short 11100010 8086 Loop Control While ECX Counter Not Zero
LOOPZ Short 11100001 8086 Loop while Zero
LOOPE Short 11100001 8086 Loop while Equal
LOOPNZ Short 11100000 8086 Loop while Not Zero
LOOPNE Short 11100000 8086 Loop while Not Equal
LOCK 11110000 8086 Assert Lock# Signal Prefix
LOCK: 11110000 8086 Assert Lock# Signal Prefix
REP 11110011 8086 Repeat Following String Operation
REPE 11110011 8086 Repeat while Equal
REPZ 11110011 8086 Repeat while Zero
REPNE 11110010 8086 Repeat while Not Equal
REPNZ 11110010 8086 Repeat while Not Zero
CS: 00101110 8086 CS segment override prefix
DS: 00111110 8086 DS segment override prefix
ES: 00100110 8086 ES segment override prefix
FS: 01100100 80386 FS segment override prefix
GS: 01100101 80386 GS segment override prefix
SS: 00110110 8086 SS segment override prefix
Co-processor instructions :
Name Regs Opcode Proc Description
F2XM1 1101100111110000 8087 2^X-1
FABS 1101100111100001 8087 Absolute Value of ST
FADD ST(0),ST(n) 1101100011000rrr 8087 Addition
ST(n),ST(0) 1101110011000rrr 8087 Addition
ST(0),Mem32 11011000oo000mmm 8087 Addition
Mem32 11011000oo000mmm 8087 Addition
ST(0),Mem64 11011100oo000mmm 8087 Addition
Mem64 11011100oo000mmm 8087 Addition
ST(n) 1101110011000rrr 8087 Addition
1101110011000001 8087 Addition
FADDP ST(n),ST(0) 11011110oo000mmm 8087 Addition and Pop
ST(n) 11011110oo000mmm 8087 Addition and Pop
1101111011000001 8087 Addition and Pop
FIADD ST(0),Mem16 11011110oo000mmm 8087 Addition (Integer)
Mem16 11011110oo000mmm 8087 Addition (Integer)
ST(0),Mem32 11011010oo000mmm 8087 Addition (Integer)
Mem32 11011010oo000mmm 8087 Addition (Integer)
FCMOVcc ST(0),ST(n) 1101101n110ccrrr PentiumPro Conditional Move
ST(n) 1101101n110ccrrr PentiumPro Conditional Move
1101101n110cc001 PentiumPro Conditional Move
FCHS 1101100111100000 8087 Change Sign
FCLEX [FWAIT] 1101101111100010 8087 Clear Errors
FNCLEX 1101101111100010 8087 Clear Errors
FCOM ST(0),Mem64 11011100oo010mmm 8087 Compare
Mem64 11011100oo010mmm 8087 Compare
ST(0),ST(n) 11011000oo010mmm 8087 Compare
ST(0),Mem32 11011000oo010mmm 8087 Compare
ST(n) 11011000oo010mmm 8087 Compare
Mem32 11011000oo010mmm 8087 Compare
1101100011010001 8087 Compare
FCOMP ST(0),Mem64 11011100oo011mmm 8087 Compare and Pop
Mem64 11011100oo011mmm 8087 Compare and Pop
ST(0),ST(n) 11011000oo011mmm 8087 Compare and Pop
ST(0),Mem32 11011000oo011mmm 8087 Compare and Pop
ST(n) 11011000oo011mmm 8087 Compare and Pop
Mem32 11011000oo011mmm 8087 Compare and Pop
1101100011011001 8087 Compare and Pop
FICOM ST(0),Mem16 11011110oo010mmm 8087 Compare (Integer)
Mem16 11011110oo010mmm 8087 Compare (Integer)
ST(0),Mem32 11011010oo010mmm 8087 Compare (Integer)
Mem32 11011010oo010mmm 8087 Compare (Integer)
FICOMP ST(0),Mem16 11011110oo011mmm 8087 Compare (Integer) and Pop
Mem16 11011110oo011mmm 8087 Compare (Integer) and Pop
ST(0),Mem32 11011010oo011mmm 8087 Compare (Integer) and Pop
Mem32 11011010oo011mmm 8087 Compare (Integer) and Pop
FCOMI ST(0),ST(n) 1101101111110rrr PentiumPro Compare Integer (EFLAGS)
ST(n) 1101101111110rrr PentiumPro Compare Integer (EFLAGS)
1101101111110001 PentiumPro Compare Integer (EFLAGS)
FCOMIP ST(0),ST(n) 1101111111110rrr PentiumPro Compare Integer and Pop (EFLAGS)
ST(n) 1101111111110rrr PentiumPro Compare Integer and Pop (EFLAGS)
1101111111110001 PentiumPro Compare Integer and Pop (EFLAGS)
FUCOMI ST(0),ST(n) 1101101111101rrr PentiumPro Unordered Compare Integer (EFLAGS)
ST(n) 1101101111101rrr PentiumPro Unordered Compare Integer (EFLAGS)
1101101111101001 PentiumPro Unordered Compare Integer (EFLAGS)
FUCOMIP ST(0),ST(n) 1101111111101rrr PentiumPro Unordered Compare Integer (EFLAGS)
ST(n) 1101111111101rrr PentiumPro Unordered Compare Integer (EFLAGS)
1101111111101001 PentiumPro Unordered Compare Integer (EFLAGS)
FUCOMPP 1101111011010101 8086 Compare and Pop and Pop
FCOS 1101100111111111 80387 Cosine
FDECSTP 1101100111110110 8087 Decrement Stack Pointer
FDISI [FWAIT] 1101101111100001 8087 Disable Interrupts
FNDISI 1101101111100001 8087 Disable Interrupts
FDIV ST(0),ST(n) 1101100011110rrr 8087 Division
ST(n),ST(0) 1101110011111rrr 8087 Division
ST(0),Mem32 11011000oo110mmm 8087 Division
Mem32 11011000oo110mmm 8087 Division
ST(0),Mem64 11011100oo110mmm 8087 Division
Mem64 11011100oo110mmm 8087 Division
ST(n) 1101110011111rrr 8087 Division
1101110011111001 8087 Division
FDIVP ST(n),ST(0) 11011110oo111mmm 8087 Division and Pop
ST(n) 11011110oo111mmm 8087 Division and Pop
1101111011111001 8087 Division and Pop
FIDIV ST(0),Mem16 11011110oo110mmm 8087 Division (Integer) and Pop
Mem16 11011110oo110mmm 8087 Division (Integer) and Pop
ST(0),Mem32 11011010oo110mmm 8087 Division (Integer) and Pop
Mem32 11011010oo110mmm 8087 Division (Integer) and Pop
FDIVR ST(0),ST(n) 1101100011111rrr 8087 Division Reversed
ST(n),ST(0) 1101110011110rrr 8087 Division Reversed
ST(0),Mem32 11011000oo111mmm 8087 Division Reversed
Mem32 11011000oo111mmm 8087 Division Reversed
ST(0),Mem64 11011100oo111mmm 8087 Division Reversed
Mem64 11011100oo111mmm 8087 Division Reversed
ST(n) 1101110011110rrr 8087 Division Reversed
1101110011110001 8087 Division Reversed
FDIVRP ST(n),ST(0) 11011110oo110mmm 8087 Division Reversed and Pop
ST(n) 11011110oo110mmm 8087 Division Reversed and Pop
1101111011110001 8087 Division Reversed and Pop
FIDIVR ST(0),Mem16 11011110oo111mmm 8087 Division Reversed (Integer)
Mem16 11011110oo111mmm 8087 Division Reversed (Integer)
ST(0),Mem32 11011010oo111mmm 8087 Division Reversed (Integer)
Mem32 11011010oo111mmm 8087 Division Reversed (Integer)
FENI [FWAIT] 1101101111100000 8087 Disable Interrupts
FNENI 1101101111100000 8087 Disable Interrupts
FFREE ST(n) 1101110111000rrr 8087 Free Register
1101110111000001 8087 Free Register
FINCSTP 1101100111110111 8087 Increment Stack Pointer
FINIT [FWAIT] 1101101111100011 8087 Initialize FPU
FNINIT 1101101111100011 8087 Initialize FPU
FLD ST(0),Mem32 11011001oo000mmm 8087 Load Data
Mem32 11011001oo000mmm 8087 Load Data
ST(0),Mem64 11011101oo000mmm 8087 Load Data
Mem64 11011101oo000mmm 8087 Load Data
ST(0),Mem80 11011011oo101mmm 8087 Load Data
Mem80 11011011oo101mmm 8087 Load Data
ST(0),ST(n) 11011001oo000mmm 8087 Load Data
ST(n) 11011001oo000mmm 8087 Load Data
1101100111000001 8087 Load Data
FILD ST(0),Mem16 11011111oo000mmm 8087 Load Data (Integer)
Mem16 11011111oo000mmm 8087 Load Data (Integer)
ST(0),Mem32 11011011oo000mmm 8087 Load Data (Integer)
Mem32 11011011oo000mmm 8087 Load Data (Integer)
ST(0),Mem64 11011111oo101mmm 8087 Load Data (Integer)
Mem64 11011111oo101mmm 8087 Load Data (Integer)
FBLD ST(0),Mem80 11011111oo100mmm 8087 Load Data (BCD)
Mem80 11011111oo100mmm 8087 Load Data (BCD)
FLD1 1101100111101000 8087 Load + 1.0
FLDZ 1101100111101110 8087 Load + 0.0
FLDPI 1101100111101011 8087 Load PI
FLDL2E 1101100111101010 8087 Load log2 e
FLDL2T 1101100111101001 8087 Load log2 10
FLDLG2 1101100111101100 8087 Load log10 2
FLDLN2 1101100111101101 8087 Load loge 2
FLDCW Mem16 11011001oo101mmm 8087 Load Control Register
FLDENV Mem 11011001oo100mmm 8087 Load Enviroment
FMUL ST(0),ST(n) 1101100011001rrr 8087 Multiplication
ST(n),ST(0) 1101110011001rrr 8087 Multiplication
ST(0),Mem32 11011000oo001mmm 8087 Multiplication
Mem32 11011000oo001mmm 8087 Multiplication
ST(0),Mem64 11011100oo001mmm 8087 Multiplication
Mem64 11011100oo001mmm 8087 Multiplication
ST(n) 1101110011001rrr 8087 Multiplication
1101110011001001 8087 Multiplication
FMULP ST(n),ST(0) 11011110oo001mmm 8087 Multiplication and Pop
ST(n) 11011110oo001mmm 8087 Multiplication and Pop
1101111011001001 8087 Multiplication and Pop
FIMUL ST(0),Mem16 11011110oo001mmm 8087 Multiplication (Integer)
Mem16 11011110oo001mmm 8087 Multiplication (Integer)
ST(0),Mem32 11011010oo001mmm 8087 Multiplication (Integer)
Mem32 11011010oo001mmm 8087 Multiplication (Integer)
FNOP 1101100111010000 8087 No Operation
FPATAN 1101100111110011 8087 Partial Arctangent
FPREM 1101100111111000 8087 Partial Remainder
FPREM1 1101100111110101 80387 Partial Remainder (IEEE)
FPTAN 1101100111110010 8087 Partial Tangent
FRNDINT 1101100111111100 8087 Round to Integer
FRSTOR Mem112 11011101oo100mmm 8087 Restore State
FSAVE Mem112 [FWAIT] 11011101oo110mmm 8087 Save Machine State
FNSAVE Mem112 11011101oo110mmm 8087 Save Machine State
FSCALE 1101100111111101 8087 Scale
FSETPM 1101101111100100 80287 Set Protected Mode
FSIN 1101100111111110 80387 Sine
FSINCOS 1101100111111011 80387 Sine and Cosine
FSQRT 1101100111111010 8087 Square Root
FST Mem32,ST(0) 11011001oo010mmm 8087 Store
Mem32 11011001oo010mmm 8087 Store
Mem64,ST(0) 11011101oo010mmm 8087 Store
Mem64 11011101oo010mmm 8087 Store
ST(n),ST(0) 11011101oo010mmm 8087 Store
ST(n) 11011101oo010mmm 8087 Store
1101110111010001 8087 Store
FSTP Mem32,ST(0) 11011001oo011mmm 8087 Store and Pop
Mem32 11011001oo011mmm 8087 Store and Pop
Mem64,ST(0) 11011101oo011mmm 8087 Store and Pop
Mem64 11011101oo011mmm 8087 Store and Pop
Mem80,ST(0) 11011011oo111mmm 8087 Store and Pop
Mem80 11011011oo111mmm 8087 Store and Pop
ST(n),ST(0) 1101110111011rrr 8087 Store and Pop
ST(n) 1101110111011rrr 8087 Store and Pop
1101110111011001 8087 Store and Pop
FIST Mem16,ST(0) 11011111oo010mmm 8087 Store (Integer)
Mem16 11011111oo010mmm 8087 Store (Integer)
Mem32,ST(0) 11011011oo010mmm 8087 Store (Integer)
Mem32 11011011oo010mmm 8087 Store (Integer)
FISTP Mem16,ST(0) 11011111oo011mmm 8087 Store (Integer) and Pop
Mem16 11011111oo011mmm 8087 Store (Integer) and Pop
Mem32,ST(0) 11011011oo011mmm 8087 Store (Integer) and Pop
Mem32 11011011oo011mmm 8087 Store (Integer) and Pop
Mem64,ST(0) 11011111oo111mmm 8087 Store (Integer) and Pop
Mem64 11011111oo111mmm 8087 Store (Integer) and Pop
FBSTP Mem80,ST(n) 11011111oo110mmm 8087 Store (BCD) and Pop
Mem80 11011111oo110mmm 8087 Store (BCD) and Pop
FSTCW Mem16 [FWAIT] 11011001oo111mmm 8087 Store Control Register
FNSTCW Mem16 11011001oo111mmm 8087 Store Control Register
FSTENV Mem [FWAIT] 11011001oo110mmm 8087 Store Environment
FNSTENV Mem 11011001oo110mmm 8087 Store Environment
FSTSW Mem16 [FWAIT] 11011101oo111mmm 8087 Store Status Register
AX [FWAIT] 1101111111100000 8087 Store Status Register
FNSTSW Mem16 11011101oo111mmm 8087 Store Status Register
AX 1101111111100000 8087 Store Status Register
FSUB ST(0),ST(n) 1101100011100rrr 8087 Subtraction
ST(n),ST(0) 1101110011101rrr 8087 Subtraction
ST(0),Mem32 11011000oo100mmm 8087 Subtraction
Mem32 11011000oo100mmm 8087 Subtraction
ST(0),Mem64 11011100oo100mmm 8087 Subtraction
Mem64 11011100oo100mmm 8087 Subtraction
ST(n) 1101110011101rrr 8087 Subtraction
1101110011101001 8087 Subtraction
FSUBP ST(n),ST(0) 11011110oo101mmm 8087 Subtraction and Pop
ST(n) 11011110oo101mmm 8087 Subtraction and Pop
1101111011101001 8087 Subtraction and Pop
FISUB ST(0),Mem16 11011110oo100mmm 8087 Subtraction (Integer)
Mem16 11011110oo100mmm 8087 Subtraction (Integer)
ST(0),Mem32 11011010oo100mmm 8087 Subtraction (Integer)
Mem32 11011010oo100mmm 8087 Subtraction (Integer)
FSUBR ST(0),ST(n) 1101100011101rrr 8087 Reverse Subtraction
ST(n),ST(0) 1101110011100rrr 8087 Reverse Subtraction
ST(0),Mem32 11011000oo101mmm 8087 Reverse Subtraction
Mem32 11011000oo101mmm 8087 Reverse Subtraction
ST(0),Mem64 11011100oo101mmm 8087 Reverse Subtraction
Mem64 11011100oo101mmm 8087 Reverse Subtraction
ST(n) 1101110011100rrr 8087 Reverse Subtraction
1101110011100001 8087 Reverse Subtraction
FSUBRP ST(n),ST(0) 11011110oo100mmm 8087 Reverse Subtraction and Pop
ST(n) 11011110oo100mmm 8087 Reverse Subtraction and Pop
1101111011100001 8087 Reverse Subtraction and Pop
FISUBR ST(0),Mem16 11011110oo101mmm 8087 Reverse Subtraction (Integer)
Mem16 11011110oo101mmm 8087 Reverse Subtraction (Integer)
ST(0),Mem32 11011010oo101mmm 8087 Reverse Subtraction (Integer)
Mem32 11011010oo101mmm 8087 Reverse Subtraction (Integer)
FTST 1101100111100100 8087 Compare with 0.0
FUCOM ST(0),ST(n) 1101110111100rrr 80387 Unordered Compare
ST(n),ST(0) 1101110111100rrr 80387 Unordered Compare
ST(n) 1101110111100rrr 80387 Unordered Compare
1101110111100001 80387 Unordered Compare
FUCOMP ST(0),ST(n) 1101110111101rrr 80387 Unordered Compare and Pop
ST(n),ST(0) 1101110111101rrr 80387 Unordered Compare and Pop
ST(n) 1101110111101rrr 80387 Unordered Compare and Pop
1101110111101001 80387 Unordered Compare and Pop
FUCOMPP ST(0),ST(n) 1101101011101rrr 80387 Unordered Compare and Pop and Pop
ST(n),ST(0) 1101101011101rrr 80387 Unordered Compare and Pop and Pop
ST(n) 1101101011101rrr 80387 Unordered Compare and Pop and Pop
1101101011101001 80387 Unordered Compare and Pop and Pop
FWAIT 10011011 8086 Wait for FPU
FXAM 1101100111100101 8087 Examine
FXCH ST(0),ST(n) 1101100111001rrr 8087 Exchange with Register
ST(n),ST(0) 1101100111001rrr 8087 Exchange with Register
ST(n) 1101100111001rrr 8087 Exchange with Register
1101100111001001 8087 Exchange with Register
FXTRACT 1101100111110100 8087 Extract Components
FYL2X 1101100111110001 8087 ST(1) * log2 ST(0)
FYL2XP1 1101100111111001 8087 ST(1) * log2 (ST(0)+1.0)
Condition codes.
CCCC Name Means In short
0000 O overflow o=1
0001 NO Not overflow o=0
0010 C/B/NAE Carry, below, not above nor equal c=1
0011 NC/AE/NB Not carry, above or equal, not below c=0
0100 E/Z Equal, zero z=1
0101 NE/NZ Not equal, not zero z=0
0110 BE/NA Below or equal, not above c=1 or z=1
0111 A/NBE Above, not below nor equal c=0 and z=0
1000 S Sign (negative) s=1
1001 NS Not sign s=0
1010 P/PE Parity, parity even p=1
1011 NP/PO Not parity, parity odd p=0
1100 L/NGE Less, not greater nor equal s<>o
1101 GE/NL Greater or egual, not less s=o
1110 LE/NG Less or equal, not greater z=1 or s<>o
1111 G/NLE Greater, not less nor equal z=0 and s=o
Condition codes for FCMOVcc.
cc n Name Means In short
00 0 C/B/NAE Carry, below, not above nor equal c=1
00 1 NC/AE/NB Not carry, above or equal, not below c=0
01 0 E/Z Equal, zero z=1
01 1 NE/NZ Not equal, not zero z=0
10 0 BE/NA Below or equal, not above c=1 or z=1
10 1 A/NBE Above, not below nor equal c=0 and z=0
11 0 U Unordered C2=1
11 1 NU Not Unordered C2=0
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- [求助]securom7的文本加密 3062
- [求助]securom7的文本加密 3704
- [求助]关于nop指令 4226
- [分享]80x86 opcodes 1065
- [求助]masm不支持64位处理器么 1775
看原图
赞赏
雪币:
留言: