80x86 Opcodes map

来源:互联网 发布:vb怎么把图片放大 编辑:程序博客网 时间:2024/05/15 13:40

80x86 Opcodes


Here is a list of instructions and opcodes used by Intel, AMD, Cyrix and Nexgen. Gdb was used get all the info out of the processors. This page was made by Asbjørn Leth Vonsild (alv@imada.ou.dk) and Jesper Pedersen (jews@imada.ou.dk). Please send any comments, questions directly to the original authors.
Last updated : 03.10.1996 at 11:30:00


Table of contents

  • Technical Specifications
  • Instructions and Opcodes
    • Main instructions
    • Co-Processor instructions
    • Condition Codes
    • Condition Codes for FCMOVcc
  • Further Reading


Technical Specifications

 Introduction
DateClock SpeedsBus WidthNumber of
TransistorsAddressable
MemoryVirtual
MemoryBrief
Description4004 11/15/71108 KHz4 bits2,300
(10 microns)640 bytes
First microcomputer chip,
Arithmetic manipulation80084/1/72108 KHz8 bits3,50016 KBytes
Data/character manipulation80804/1/742 MHz8 bits6,000
(6 microns)64 KBytes
10X the performance of the 800880866/8/785 MHz
8 MHz
10 MHz16 bits29,000
(3 microns)1 Megabyte
10X the performance of the 808080886/1/795 MHz
8 MHz8 bits29,000
(3 microns)

Identical to 8086 except for its 8-bit external bus802862/1/828 MHz
10 MHz
12 MHz16 bits134,000
(1.5 microns)16 Megabytes1 gigabyte3-6X the performance of the 8086Intel386(TM)DX Microprocessor10/17/8516 MHz
20 MHz
25 MHz
33 MHz32 bits275,000
(1 micron)4 gigabytes64 terabytes First X86 chip to handle 32-bit data sets
Intel386(TM)SX Microprocessor6/16/8816 MHz
20 MHz16 bits275,000
(1 micron)4 gigabytes64 terabytes16-bit address bus enabled low-cost 32-bit processing
Intel486(TM)DX Microprocessor4/10/8925 MHz
33 MHz
50 MHz32 bits1,200,000
(1 micron, .8 micron with 50 MHz)4 gigabytes64 terabytesLevel 1 cache on chip
Intel486(TM)SX Microprocessor4/22/9116 MHz
20 MHz
25 MHz
33 MHz32 bits1,185,000
(.8 micron)4 gigabytes64 terabytesidentical in design to Intel486(TM) DX but without math coprocessor
Pentium® Processor3/22/9360MHz
66MHz
75MHz
90MHz
100MHz
120MHz
133MHz
150MHz
166MHz32 bits3.1 million
(.8 micron)4 gigabytes64 terabytessuperscaler architecture brought 5X the performance of the 33-MHz Intel486 DX processor
Pentium® Pro Processor3/27/95150MHz
180MHz
200MHz32 bits5.5 million
(.32 micron)4 gigabytes64 terabytesdynamic execution architecture drives high-performing processor


Instructions and opcodes

oo : Function

  • 00 : If mmm = 110, then a displacement follows the operation; otherwise, no displacement is used
  • 01 : An 8-bit signed displacement follows the opcode
  • 10 : A 16-bit signed displacement follows the opcode
  • 11 : mmm specifies a register, instead of an addressing mode

mmm : Function

  • 000 : DS:[BX+SI]
  • 001 : DS:[BX+DI]
  • 010 : SS:[BP+SI]
  • 011 : SS:[BP+DI]
  • 100 : DS:[SI]
  • 101 : DS:[DI]
  • 110 : SS:[BP]
  • 111 : DS:[BX]

rrr : W=0 : W=1 : reg32

  • 000 : AL : AX : EAX
  • 001 : CL : CX : ECX
  • 010 : DL : DX : EDX
  • 011 : BL : BX : EBX
  • 100 : AH : SP : ESP
  • 101 : CH : BP : EBP
  • 110 : DH : SI : ESI
  • 111 : BH : DI : EDI

sss : Segment Register

  • 000 : ES
  • 001 : CS
  • 010 : SS
  • 011 : DS
  • 100 : FS (Only 386+)
  • 101 : GS (Only 386+)

rrr : Index Register

  • 000 : EAX
  • 001 : ECX
  • 010 : EDX
  • 011 : EBX
  • 100 : No Index
  • 101 : EBP
  • 110 : ESI
  • 111 : EDI

32 bit addressing-mode

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






原创粉丝点击