(This is just a quick & dirty spreadsheet.. sorry if it's lousy HTML.)
Pick a table 0xx-3xx, then down for the second octal digit, and across for the third digit.
| 0xx | |||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
| 0 | ADD | PUSH | POP | ||||||
| r/m, reg | reg, r/m | acc, imm | ES | ES | |||||
| 1 | OR | *2-byte | |||||||
| r/m, reg | reg, r/m | acc, imm | CS | opcode | |||||
| 2 | ADC | ||||||||
| r/m, reg | reg, r/m | acc, imm | SS | SS | |||||
| 3 | SBB | ||||||||
| r/m, reg | reg, r/m | acc, imm | DS | DS | |||||
| 4 | AND | ES: | DAA | ||||||
| r/m, reg | reg, r/m | acc, imm | |||||||
| 5 | SUB | CS: | DAS | ||||||
| r/m, reg | reg, r/m | acc, imm | |||||||
| 6 | XOR | SS: | AAA | ||||||
| r/m, reg | reg, r/m | acc, imm | |||||||
| 7 | CMP | DS: | AAS | ||||||
| r/m, reg | reg, r/m | acc, imm | |||||||
| * Useful 2-byte opcodes: 200-217=Jcc near 220-237=SETcc 266-7=MOVZX 276-7=MOVSX | |||||||||
| 1xx | |||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
| 0 | INC reg | ||||||||
| eax | ecx | edx | ebx | esp | ebp | esi | edi | ||
| 1 | DEC reg | ||||||||
| eax | ecx | edx | ebx | esp | ebp | esi | edi | ||
| 2 | PUSH reg | ||||||||
| eax | ecx | edx | ebx | esp | ebp | esi | edi | ||
| 3 | POP reg | ||||||||
| eax | ecx | edx | ebx | esp | ebp | esi | edi | ||
| 4 | PUSHA | POPA | BOUND | ARPL | FS: | GS: | OPSIZ: | ADRSIZ: | |
| 5 | PUSH | IMUL | PUSH | IMUL | INS | OUTS | |||
| imm | reg, r/m, i | imm | reg, r/m, i | B | W/D | B | W/D | ||
| 6 | Jcc short | ||||||||
| O | NO | C | NC | E | NE | BE,NA | NBE,A | ||
| 7 | |||||||||
| S | NS | P,PE | NP,PO | L,NGE | NL,GE | LE,NG | NLE,G | ||
| 2xx | |||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
| 0 | *Group 1 (ALU) | - | *Group 1 | TEST | XCHG | ||||
| r/m, imm32 | r/m, imm8 | r/m, reg | r/m, reg | ||||||
| 1 | MOV | MOV | MOV | LEA | MOV | POP | |||
| r/m, reg | reg, r/m | r/m, sreg | reg, mem | sreg, r/m | mem | ||||
| 2 | NOP | XCHG reg, acc | |||||||
| ecx | edx | ebx | esp | ebp | esi | edi | |||
| 3 | CBW | CWD, | CALL | WAIT | PUSHF | POPF | SAHF | LAHF | |
| CWDE | far | ||||||||
| 4 | MOV | MOV | MOVS | CMPS | |||||
| acc, disp | disp, acc | B | W/D | B | W/D | ||||
| 5 | TEST | STOS | LODS | SCAS | |||||
| acc, imm | B | W/D | B | W/D | B | W/D | |||
| 6 | MOV reg, imm (byte) | ||||||||
| al | cl | dl | bl | ah | ch | dh | bh | ||
| 7 | MOV reg, imm (word/dword) | ||||||||
| eax | ecx | edx | ebx | esp | ebp | esi | edi | ||
| * ALU instructions as in 0xx (ADD, OR, ADC, SBB, AND, SUB, XOR, CMP) | |||||||||
| 3xx | |||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
| 0 | *Group 2 (SHIFT) | RET | RET | LES | LDS | MOV | |||
| r/m, imm | imm | r/m, imm | |||||||
| 1 | ENTER | LEAVE | RETF | - | INT3 | INT | INT0 | IRET | |
| imm | imm | ||||||||
| 2 | *Group 2 (SHIFT) | *Group 2 (SHIFT) | AAM | AAD | - | XLAT | |||
| r/m, 1 | r/m, cl | ||||||||
| 3 | ESC (FPU instruction w/ "xrm" byte where x,r indicates instruction.) | ||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
| 4 | LOOPNE | LOOPE | LOOP | JCXZ | IN | OUT | |||
| short | short | short | short | acc, imm | imm, acc | ||||
| 5 | CALL | JMP | JMP | JMP | IN | OUT | |||
| disp | disp | absolute | short | acc, dx | dx, acc | ||||
| 6 | LOCK | - | REPNE | REP | HALT | CMC | *Group 3 | ||
| REPE | byte r/m | word r/m | |||||||
| 7 | CLC | STC | CLI | STI | CLD | STD | *Group 4 | *Group 5 | |
| * Group 2: 0=ROL 1=ROR 2=RCL 3=RCR 4=SHL 5=SHR 6=none 7=SAR | |||||||||
| * Group 3: 0=TEST r/m, imm 1=none 2=NOT 3=NEG 4=MUL 5=IMUL 6=DIV 7=IDIV | |||||||||
| * Group 4: 0=INC byte r/m 1=DEC byte r/m | |||||||||
| * Group 5: 0=SLDT 1=STR 2=LLDT 3=LTR 4=VERR 5=VERW | |||||||||