80x86指令/二进制码对照表
| [ 返回目录 ] |
处理器技术参数:
| 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 的含义为:
下表中 mmm 的含义为:
下表中 rrr (w=0,w=1,reg32) 的含义为:
下表中 sss ( Segment Register ) 的含义为:
下表中 rrr ( Index Register ) 的含义为:
32 位寻址模式:
| 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 |