Here is a list of instructions and opcodes used by Intel, AMD, Cyrix and Nexgen. We used gdb to get all the info out of the processors
Introduction Date |
Clock Speeds | Bus Width | Number of Transistors |
Addressable Memory |
Virtual Memory |
Brief Description |
|
---|---|---|---|---|---|---|---|
4004 | 11/15/71 | 108 KHz | 4 bits | 2,300 (10 microns) |
640 bytes | First microcomputer chip, Arithmetic manipulation |
|
8008 | 4/1/72 | 108 KHz | 8 bits | 3,500 | 16 KBytes | Data/character manipulation | |
8080 | 4/1/74 | 2 MHz | 8 bits | 6,000 (6 microns) |
64 KBytes | 10X the performance of the 8008 | |
8086 | 6/8/78 | 5 MHz 8 MHz 10 MHz |
16 bits | 29,000 (3 microns) |
1 Megabyte | 10X the performance of the 8080 | |
8088 | 6/1/79 | 5 MHz 8 MHz |
8 bits | 29,000 (3 microns) |
Identical to 8086 except for its 8-bit external bus | ||
80286 | 2/1/82 | 8 MHz 10 MHz 12 MHz |
16 bits | 134,000 (1.5 microns) |
16 Megabytes | 1 gigabyte | 3-6X the performance of the 8086 |
Intel386(TM)DX Microprocessor | 10/17/85 | 16 MHz 20 MHz 25 MHz 33 MHz |
32 bits | 275,000 (1 micron) |
4 gigabytes | 64 terabytes | First X86 chip to handle 32-bit data sets |
Intel386(TM)SX Microprocessor | 6/16/88 | 16 MHz 20 MHz |
16 bits | 275,000 (1 micron) |
4 gigabytes | 64 terabytes | 16-bit address bus enabled low-cost 32-bit processing |
Intel486(TM)DX Microprocessor | 4/10/89 | 25 MHz 33 MHz 50 MHz |
32 bits | 1,200,000 (1 micron, .8 micron with 50 MHz) |
4 gigabytes | 64 terabytes | Level 1 cache on chip |
Intel486(TM)SX Microprocessor | 4/22/91 | 16 MHz 20 MHz 25 MHz 33 MHz |
32 bits | 1,185,000 (.8 micron) |
4 gigabytes | 64 terabytes | identical in design to Intel486(TM) DX but without math coprocessor |
Pentium® Processor | 3/22/93 | 60MHz 66MHz 75MHz 90MHz 100MHz 120MHz 133MHz 150MHz 166MHz |
32 bits | 3.1 million (.8 micron) |
4 gigabytes | 64 terabytes | superscaler architecture brought 5X the performance of the 33-MHz Intel486 DX processor |
Pentium® Pro Processor | 3/27/95 | 150MHz 180MHz 200MHz |
32 bits | 5.5 million (.32 micron) |
4 gigabytes | 64 terabytes | dynamic execution architecture drives high-performing processor |
oo : Function
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] |
Name | Regs | Opcode | Proc | Description |
---|---|---|---|---|
AAA | 00110111 | 8086 | ASCII Adjust After Addition | |
AAD | Imm8 | 11010101 | Pentium | ASCII Adjust Register AX Before Division |
1101010100001010 | 8086 | ASCII Adjust Register AX Before Division | ||
AAM | Imm8 | 11010100 | Pentium | ASCII Adjust AX Register After Multiplication |
1101010000001010 | 8086 | ASCII Adjust AX Register After Multiplication | ||
AAS | 00111111 | 8086 | ASCII Adjust AL Register After Substraction | |
ADC | Reg,Reg | 0001001woorrrmmm | 8086 | Add Integers with Carry |
Mem,Reg | 0001000woorrrmmm | 8086 | Add Integers with Carry | |
Reg,Mem | 0001001woorrrmmm | 8086 | Add Integers with Carry | |
Acc,Imm | 0001010w | 8086 | Add Integers with Carry | |
Reg,Imm8 | 1000001woo010mmm | 8086 | Add Integers with Carry | |
Mem,Imm8 | 1000001woo010mmm | 8086 | Add Integers with Carry | |
Reg,Imm | 1000000woo010mmm | 8086 | Add Integers with Carry | |
Mem,Imm | 1000000woo010mmm | 8086 | Add Integers with Carry | |
ADD | Reg,Reg | 0000001woorrrmmm | 8086 | Add Integers |
Mem,Reg | 0000000woorrrmmm | 8086 | Add Integers | |
Reg,Mem | 0000001woorrrmmm | 8086 | Add Integers | |
Acc,Imm | 0000010w | 8086 | Add Integers | |
Reg,Imm8 | 1000001woo000mmm | 8086 | Add Integers | |
Mem,Imm8 | 1000001woo000mmm | 8086 | Add Integers | |
Reg,Imm | 1000000woo000mmm | 8086 | Add Integers | |
Mem,Imm | 1000000woo000mmm | 8086 | Add Integers | |
AND | Reg,Reg | 0010001woorrrmmm | 8086 | Logical AND |
Mem,Reg | 0010000woorrrmmm | 8086 | Logical AND | |
Reg,Mem | 0010001woorrrmmm | 8086 | Logical AND | |
Acc,Imm | 0010010w | 8086 | Logical AND | |
Reg,Imm8 | 1000001woo100mmm | 8086 | Logical AND | |
Mem,Imm8 | 1000001woo100mmm | 8086 | Logical AND | |
Reg,Imm | 1000000woo100mmm | 8086 | Logical AND | |
Mem,Imm | 1000000woo100mmm | 8086 | Logical AND | |
ARPL | Reg16,Reg16 | 01100011oorrrmmm | 80286 | Adjust Requester Privilege Level of Selector |
Mem16,Reg16 | 01100011oorrrmmm | 80286 | Adjust Requester Privilege Level of Selector | |
BOUND | Reg16,Mem32 | 01100010oorrrmmm | 80186 | Check Array Index Against Bounds |
Reg32,Mem64 | 01100010oorrrmmm | 80386 | Check Array Index Against Bounds | |
BSF | RegWord,RegWord | 0000111110111100oorrrmmm | 80386 | Bit Scan Forward |
RegWord,MemWord | 0000111110111100oorrrmmm | 80386 | Bit Scan Forward | |
BSR | RegWord,RegWord | 0000111110111101oorrrmmm | 80386 | Bit Scan Reverse |
RegWord,MemWord | 0000111110111101oorrrmmm | 80386 | Bit Scan Reverse | |
BSWAP | RegWord | 0000111111001rrr | 80486 | Byte swap |
BT | RegWord,Imm8 | 0000111110111010oo100mmm | 80386 | Bit Test |
MemWord,Imm8 | 0000111110111010oo100mmm | 80386 | Bit Test | |
RegWord,RegWord | 0000111110100011oorrrmmm | 80386 | Bit Test | |
MemWord,RegWord | 0000111110100011oorrrmmm | 80386 | Bit Test | |
BTC | RegWord,Imm8 | 0000111110111010oo111mmm | 80386 | Bit Test and Complement |
MemWord,Imm8 | 0000111110111010oo111mmm | 80386 | Bit Test and Complement | |
RegWord,RegWord | 0000111110111011oorrrmmm | 80386 | Bit Test and Complement | |
MemWord,RegWord | 0000111110111011oorrrmmm | 80386 | Bit Test and Complement | |
BTR | RegWord,Imm8 | 0000111110111010oo110mmm | 80386 | Bit Test and Reset |
MemWord,Imm8 | 0000111110111010oo110mmm | 80386 | Bit Test and Reset | |
RegWord,RegWord | 0000111110110011oorrrmmm | 80386 | Bit Test and Reset | |
MemWord,RegWord | 0000111110110011oorrrmmm | 80386 | Bit Test and Reset | |
BTS | RegWord,Imm8 | 0000111110111010oo101mmm | 80386 | Bit Test and Set |
MemWord,Imm8 | 0000111110111010oo101mmm | 80386 | Bit Test and Set | |
RegWord,RegWord | 0000111110101011oorrrmmm | 80386 | Bit Test and Set | |
MemWord,RegWord | 0000111110101011oorrrmmm | 80386 | Bit Test and Set | |
CBW | 10011000 | 8086 | Convert Byte to Word | |
CDQ | 10011001 | 80386 | Convert Doubleword to Quad-Word | |
CLC | 11111000 | 8086 | Clear Carry Flag (CF) | |
CLD | 11111100 | 8086 | Clear Direction Flag (DF) | |
CLI | 11111010 | 8086 | Clear Interrupt Flag (IF) | |
CLTS | 0000111100000110 | 80286 | Clear Task-Switched Flag in Control Register Zero | |
CMC | 11110101 | 8086 | Complementer Carry Flag (CF) | |
CMOVcc | Reg,Reg | 000011110100ccccoorrrmmm | PentiumPro | Conditional Move |
Reg,Mem | 000011110100ccccoorrrmmm | PentiumPro | Conditional Move | |
CMP | Reg,Reg | 0011101woorrrmmm | 8086 | Compare |
Mem,Reg | 0011100woorrrmmm | 8086 | Compare | |
Reg,Mem | 0011101woorrrmmm | 8086 | Compare | |
Acc,Imm | 0011110w | 8086 | Compare | |
Reg,Imm8 | 1000001woo111mmm | 8086 | Compare | |
Mem,Imm8 | 1000001woo111mmm | 8086 | Compare | |
Reg,Imm | 1000000woo111mmm | 8086 | Compare | |
Mem,Imm | 1000000woo111mmm | 8086 | Compare | |
CMPSB | 10100110 | 8086 | Compare String - Byte | |
CMPSW | 10100111 | 8086 | Compare String - Word | |
CMPSD | 10100111 | 80386 | Compare String - Doubleword | |
CMPXCHG | Reg,Reg | 000011111011000woorrrmmm | 80486 | Compare and Exchange |
Mem,Reg | 000011111011000woorrrmmm | 80486 | Compare and Exchange | |
CMPXCHG8B | Mem64 | 0000111111000111oo001mmm | Pentium | Compare and Exchange 8 Bytes |
CPUID | 0000111110100010 | Pentium | CPU Identification code to EAX | |
CWD | 10011001 | 8086 | Convert Word to Doubleword | |
CWDE | 10011000 | 80386 | Convert Word to Extended Doubleword | |
DAA | 00100111 | 8086 | Decimal Adjust Register After Addition | |
DAS | 00101111 | 8086 | Decimal Adjust AL Register After Substraction | |
DEC | RegWord | 01001rrr | 8086 | Decrement by One |
Reg | 1111111woo001mmm | 8086 | Decrement by One | |
Mem | 1111111woo001mmm | 8086 | Decrement by One | |
DIV | Reg | 1111011woo110mmm | 8086 | Unsigned Integer Divide |
Mem | 1111011woo110mmm | 8086 | Unsigned Integer Divide | |
ENTER | Imm16,Imm8 | 11001000 | 80186 | Make Stack Frame for Procedure Parameter |
HLT | 11110100 | 8086 | Halt | |
IDIV | Reg | 1111011woo111mmm | 8086 | Signed Divide |
Mem | 1111011woo111mmm | 8086 | Signed Divide | |
IMUL | RegWord,RegWord,Imm8 | 01101011oorrrmmm | 80186 | Signed Integer Multiply |
RegWord,MemWord,Imm8 | 01101011oorrrmmm | 80186 | Signed Integer Multiply | |
RegWord,RegWord,Imm | 01101001oorrrmmm | 80186 | Signed Integer Multiply | |
RegWord,MemWord,Imm | 01101001oorrrmmm | 80186 | Signed Integer Multiply | |
RegWord,Imm8 | 0110101111rrrqqq | 80186 | Signed Integer Multiply | |
RegWord,Imm | 0110100111rrrqqq | 80186 | Signed Integer Multiply | |
RegWord,RegWord | 0000111110101111oorrrmmm | 80386 | Signed Integer Multiply | |
RegWord,MemWord | 0000111110101111oorrrmmm | 80386 | Signed Integer Multiply | |
Reg | 1111011woo101mmm | 8086 | Signed Integer Multiply | |
Mem | 1111011woo101mmm | 8086 | Signed Integer Multiply | |
IN | Acc,Imm8 | 1110010w | 8086 | Input from Port |
Acc,DX | 1110110w | 8086 | Input from Port | |
INC | RegWord | 01000rrr | 8086 | Increment by 1 |
Reg | 1111111woo000mmm | 8086 | Increment by 1 | |
Mem | 1111111woo000mmm | 8086 | Increment by 1 | |
INSB | 01101100 | 80186 | Input Byte | |
INSW | 01101101 | 80186 | Input Word | |
INSD | 01101101 | 80386 | Input DoubleWord | |
INT | 3 | 11001100 | 8086 | Call to Interrupt Procedure |
Imm8 | 11001101 | 8086 | Call to Interrupt Procedure | |
INTO | 11001110 | 8086 | Interrupt on Overflow | |
INVD | 0000111100001000 | 80486 | Invalidate data cache | |
INVLPG | Mem | 0000111100000001oo111mmm | 80486 | Invalidate TBL entry |
IRET | 11001111 | 8086 | Return from Interrupt | |
IRETD | 11001111 | 80386 | Return from Interrupt - 32-bit Mode | |
LAHF | 10011111 | 8086 | Load Flags into AH Register | |
LAR | RegWord,RegWord | 0000111100000010oorrrmmm | 80286 | Load Access Rights Byte |
RegWord,MemWord | 0000111100000010oorrrmmm | 80286 | Load Access Rights Byte | |
LDS | Reg16,Mem32 | 11000101oorrrmmm | 8086 | Load Pointer Using DS |
Reg32,Mem64 | 11000101oorrrmmm | 80386 | Load Pointer Using DS | |
LES | Reg16,Mem32 | 11000100oorrrmmm | 8086 | Load Pointer Using ES |
Reg32,Mem64 | 11000100oorrrmmm | 80386 | Load Pointer Using ES | |
LFS | Reg16,Mem32 | 0000111110110100oorrrmmm | 80386 | Load Pointer Using FS |
Reg32,Mem64 | 0000111110110100oorrrmmm | 80386 | Load Pointer Using FS | |
LGS | Reg16,Mem32 | 0000111110110101oorrrmmm | 80386 | Load Pointer Using GS |
Reg32,Mem64 | 0000111110110101oorrrmmm | 80386 | Load Pointer Using GS | |
LSS | Reg16,Mem32 | 0000111110110010oorrrmmm | 80386 | Load Pointer Using SS |
Reg32,Mem64 | 0000111110110010oorrrmmm | 80386 | Load Pointer Using SS | |
LEA | RegWord,Mem | 10001101oorrrmmm | 8086 | Load Effective Address |
LEAVE | 11001001 | 80186 | High Level Procedure Exit | |
LGDT | Mem64 | 0000111100000001oo010mmm | 80286 | Load Global Descriptor Table |
LIDT | Mem64 | 0000111100000001oo011mmm | 80286 | Load Interrupt Descriptor Table |
LLDT | Reg16 | 0000111100000000oo010mmm | 80286 | Load Local Descriptor Table |
Mem16 | 0000111100000000oo010mmm | 80286 | Load Local Descriptor Table | |
LMSW | Reg16 | 0000111100000001oo110mmm | 80286 | Load Machine Status Word |
Mem16 | 0000111100000001oo110mmm | 80286 | Load Machine Status Word | |
LODSB | 10101100 | 8086 | Load Byte | |
LODSW | 10101101 | 8086 | Load Word | |
LODSD | 10101101 | 80386 | Load Doubleword | |
LSL | RegWord,RegWord | 0000111100000011oorrrmmm | 80286 | Load Segment Limit |
RegWord,MemWord | 0000111100000011oorrrmmm | 80286 | Load Segment Limit | |
LTR | Reg16 | 0000111100000000oo011mmm | 80286 | Load Task Register |
Mem16 | 0000111100000000oo011mmm | 80286 | Load Task Register | |
MOV | MemOfs,Acc | 1010001w | 8086 | Move Data |
Acc,MemOfs | 1010000w | 8086 | Move Data | |
Reg,Imm | 1011wrrr | 8086 | Move Data | |
Mem,Imm | 1100011woo000mmm | 8086 | Move Data | |
Reg,Reg | 1000101woorrrmmm | 8086 | Move Data | |
Reg,Mem | 1000101woorrrmmm | 8086 | Move Data | |
Mem,Reg | 1000100woorrrmmm | 8086 | Move Data | |
Reg16,Seg | 10001100oosssmmm | 8086 | Move Data | |
Seg,Reg16 | 10001110oosssmmm | 8086 | Move Data | |
Mem16,Seg | 10001100oosssmmm | 8086 | Move Data | |
Seg,Mem16 | 10001110oosssmmm | 8086 | Move Data | |
Reg32,CRn | 000011110010000011sssrrr | 80386 | Move Data | |
CRn,Reg32 | 000011110010001011sssrrr | 80386 | Move Data | |
Reg32,DRn | 000011110010000111sssrrr | 80386 | Move Data | |
DRn,Reg32 | 000011110010001111sssrrr | 80386 | Move Data | |
Reg32,TRn | 000011110010010011sssrrr | 80386 | Move Data | |
TRn,Reg32 | 000011110010011011sssrrr | 80386 | Move Data | |
MOVSB | 10100100 | 8086 | Move Byte | |
MOVSW | 10100101 | 8086 | Move Word | |
MOVSD | 10100101 | 80386 | Move Doubleword | |
MOVSX | RegWord,Reg8 | 0000111110111110oorrrmmm | 80386 | Move with Sign Extension |
RegWord,Mem8 | 0000111110111110oorrrmmm | 80386 | Move with Sign Extension | |
RegWord,Reg16 | 0000111110111111oorrrmmm | 80386 | Move with Sign Extension | |
RegWord,Mem16 | 0000111110111111oorrrmmm | 80386 | Move with Sign Extension | |
MOVZX | RegWord,Reg8 | 0000111110110110oorrrmmm | 80386 | Move with Zero Extension |
RegWord,Mem8 | 0000111110110110oorrrmmm | 80386 | Move with Zero Extension | |
RegWord,Reg16 | 0000111110110111oorrrmmm | 80386 | Move with Zero Extension | |
RegWord,Mem16 | 0000111110110111oorrrmmm | 80386 | Move with Zero Extension | |
MUL | Reg | 1111011woo100mmm | 8086 | Unsigned Integer Multiply of AL, AX or EAX |
Mem | 1111011woo100mmm | 8086 | Unsigned Integer Multiply of AL, AX or EAX | |
NEG | Reg | 1111011woo011mmm | 8086 | Negate(Two's Complement) |
Mem | 1111011woo011mmm | 8086 | Negate(Two's Complement) | |
NOP | 10010000 | 8086 | No Operation | |
NOT | Reg | 1111011woo010mmm | 8086 | Negate(One's Complement) |
Mem | 1111011woo010mmm | 8086 | Negate(One's Complement) | |
OR | Reg,Reg | 0000101woorrrmmm | 8086 | Logical Inclusive OR |
Mem,Reg | 0000100woorrrmmm | 8086 | Logical Inclusive OR | |
Reg,Mem | 0000101woorrrmmm | 8086 | Logical Inclusive OR | |
Acc,Imm | 0000110w | 8086 | Logical Inclusive OR | |
Reg,Imm8 | 1000001woo001mmm | 8086 | Logical Inclusive OR | |
Mem,Imm8 | 1000001woo001mmm | 8086 | Logical Inclusive OR | |
Reg,Imm | 1000000woo001mmm | 8086 | Logical Inclusive OR | |
Mem,Imm | 1000000woo001mmm | 8086 | Logical Inclusive OR | |
OUT | Imm8,Acc | 1110011w | 8086 | Output To Port |
DX,Acc | 1110111w | 8086 | Output To Port | |
OUTSB | 01101110 | 80186 | Output Byte | |
OUTSW | 01101111 | 80186 | Output Word | |
OUTSD | 01101111 | 80386 | Output Doubleword | |
POP | RegWord | 01011rrr | 8086 | Pop a Word from the Stack |
MemWord | 10001111oo000mmm | 8086 | Pop a Word from the Stack | |
SegOld | 00sss111 | 8086 | Pop a Word from the Stack | |
Seg | 0000111110sss001 | 80386 | Pop a Word from the Stack | |
POPA | 01100001 | 80186 | POP All Registers | |
POPAD | 01100001 | 80386 | POP All Registers - 32-bit Mode | |
POPF | 10011101 | 8086 | POP Stack into FLAGS | |
POPFD | 10011101 | 80386 | POP Stack into EFLAGS | |
PUSH | RegWord | 01010rrr | 8086 | Push Operand onto Stack |
MemWord | 11111111oo110mmm | 8086 | Push Operand onto Stack | |
SegOld | 00sss110 | 8086 | Push Operand onto Stack | |
Seg | 0000111110sss000 | 80386 | Push Operand onto Stack | |
Imm8 | 01101010 | 80186 | Push Operand onto Stack | |
Imm | 01101000 | 80186 | Push Operand onto Stack | |
PUSHW | Imm16 | 01101000 | 80286 | PUSH Word |
PUSHD | Imm32 | 01101000 | 80386 | PUSH Double Word |
PUSHA | 01100000 | 80186 | PUSH All Registers | |
PUSHAD | 01100000 | 80386 | PUSH All Registers - 32-bit Mode | |
PUSHF | 10011100 | 8086 | PUSH FLAGS | |
PUSHFD | 10011100 | 80386 | PUSH EFLAGS | |
RCL | Reg,1 | 1101000woo010mmm | 8086 | Rotate Left through Carry - Uses CF for Extension |
Mem,1 | 1101000woo010mmm | 8086 | Rotate Left through Carry - Uses CF for Extension | |
Reg,CL | 1101001woo010mmm | 8086 | Rotate Left through Carry - Uses CF for Extension | |
Mem,CL | 1101001woo010mmm | 8086 | Rotate Left through Carry - Uses CF for Extension | |
Reg,Imm8 | 1100000woo010mmm | 80186 | Rotate Left through Carry - Uses CF for Extension | |
Mem,Imm8 | 1100000woo010mmm | 80186 | Rotate Left through Carry - Uses CF for Extension | |
RCR | Reg,1 | 1101000woo011mmm | 8086 | Rotate Right through Carry - Uses CF for Extension |
Mem,1 | 1101000woo011mmm | 8086 | Rotate Right through Carry - Uses CF for Extension | |
Reg,CL | 1101001woo011mmm | 8086 | Rotate Right through Carry - Uses CF for Extension | |
Mem,CL | 1101001woo011mmm | 8086 | Rotate Right through Carry - Uses CF for Extension | |
Reg,Imm8 | 1100000woo011mmm | 80186 | Rotate Right through Carry - Uses CF for Extension | |
Mem,Imm8 | 1100000woo011mmm | 80186 | Rotate Right through Carry - Uses CF for Extension | |
RDMSR | 0000111100110010 | Pentium | Read from Model Specific Register | |
RDTSC | 0000111101010001 | Pentium | Read Timwatamp Counter | |
RET | NEAR | 11000011 | 8086 | Return from subprocedure |
RET | imm NEAR | 11000010 | 8086 | Return from subprocedure |
RET | FAR | 11001011 | 8086 | Return from subprocedure |
RET | imm FAR | 11001010 | 8086 | Return from subprocedure |
RDPMC | 0000111100110011 | PentiumPro | Read Performance Monitor Counter | |
ROL | Reg,1 | 1101000woo000mmm | 8086 | Rotate Left through Carry - Wrap bits around |
Mem,1 | 1101000woo000mmm | 8086 | Rotate Left through Carry - Wrap bits around | |
Reg,CL | 1101001woo000mmm | 8086 | Rotate Left through Carry - Wrap bits around | |
Mem,CL | 1101001woo000mmm | 8086 | Rotate Left through Carry - Wrap bits around | |
Reg,Imm8 | 1100000woo000mmm | 80186 | Rotate Left through Carry - Wrap bits around | |
Mem,Imm8 | 1100000woo000mmm | 80186 | Rotate Left through Carry - Wrap bits around | |
ROR | Reg,1 | 1101000woo001mmm | 8086 | Rotate Right through Carry - Wrap bits around |
Mem,1 | 1101000woo001mmm | 8086 | Rotate Right through Carry - Wrap bits around | |
Reg,CL | 1101001woo001mmm | 8086 | Rotate Right through Carry - Wrap bits around | |
Mem,CL | 1101001woo001mmm | 8086 | Rotate Right through Carry - Wrap bits around | |
Reg,Imm8 | 1100000woo001mmm | 80186 | Rotate Right through Carry - Wrap bits around | |
Mem,Imm8 | 1100000woo001mmm | 80186 | Rotate Right through Carry - Wrap bits around | |
RSM | 0000111110101010 | Pentium | Return from System Management mode | |
SALC | 11010110 | Pentium Pro | Set AL on Carry | |
SAHF | 10011110 | 8086 | Load Flags into AH Register | |
SAL | Reg,1 | 1101000woo100mmm | 8086 | Shift Arithmetic Left |
Mem,1 | 1101000woo100mmm | 8086 | Shift Arithmetic Left | |
Reg,CL | 1101001woo100mmm | 8086 | Shift Arithmetic Left | |
Mem,CL | 1101001woo100mmm | 8086 | Shift Arithmetic Left | |
Reg,Imm8 | 1100000woo100mmm | 80186 | Shift Arithmetic Left | |
Mem,Imm8 | 1100000woo100mmm | 80186 | Shift Arithmetic Left | |
SAR | Reg,1 | 1101000woo111mmm | 8086 | Shift Arithmetic Right |
Mem,1 | 1101000woo111mmm | 8086 | Shift Arithmetic Right | |
Reg,CL | 1101001woo111mmm | 8086 | Shift Arithmetic Right | |
Mem,CL | 1101001woo111mmm | 8086 | Shift Arithmetic Right | |
Reg,Imm8 | 1100000woo111mmm | 80186 | Shift Arithmetic Right | |
Mem,Imm8 | 1100000woo111mmm | 80186 | Shift Arithmetic Right | |
SETcc | Reg8 | 000011111001ccccoo000mmm | 80386 | Set Byte on Condition Code |
Mem8 | 000011111001ccccoo000mmm | 80386 | Set Byte on Condition Code | |
SHL | Reg,1 | 1101000woo100mmm | 8086 | 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 |
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) |
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 |
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 |