home *** CD-ROM | disk | FTP | other *** search
/ CD-X 1 / cdx_01.iso / demodisc / tyrant / docs / 386code / a_append.386 < prev    next >
Encoding:
Text File  |  1994-01-20  |  26.7 KB  |  287 lines

  1. Appendix A  Opcode Map
  2.  
  3. ────────────────────────────────────────────────────────────────────────────
  4.  
  5. The opcode tables that follow aid in interpreting 80386 object code. Use
  6. the high-order four bits of the opcode as an index to a row of the opcode
  7. table; use the low-order four bits as an index to a column of the table. If
  8. the opcode is 0FH, refer to the two-byte opcode table and use the second
  9. byte of the opcode to index the rows and columns of that table.
  10.  
  11.  
  12. Key to Abbreviations
  13.  
  14. Operands are identified by a two-character code of the form Zz. The first
  15. character, an uppercase letter, specifies the addressing method; the second
  16. character, a lowercase letter, specifies the type of operand.
  17.  
  18.  
  19. Codes for Addressing Method
  20.  
  21. A  Direct address; the instruction has no modR/M byte; the address of the
  22.    operand is encoded in the instruction; no base register, index register,
  23.    or scaling factor can be applied; e.g., far JMP (EA).
  24.  
  25. C  The reg field of the modR/M byte selects a control register; e.g., MOV
  26.    (0F20, 0F22).
  27.  
  28. D  The reg field of the modR/M byte selects a debug register; e.g., MOV
  29.    (0F21,0F23).
  30.  
  31. E  A modR/M byte follows the opcode and specifies the operand. The operand
  32.    is either a general register or a memory address. If it is a memory
  33.    address, the address is computed from a segment register and any of the
  34.    following values: a base register, an index register, a scaling factor,
  35.    a displacement.
  36.  
  37. F  Flags Register.
  38.  
  39. G  The reg field of the modR/M byte selects a general register; e.g., ADD
  40.    (00).
  41.  
  42. I  Immediate data. The value of the operand is encoded in subsequent bytes
  43.    of the instruction.
  44.  
  45. J  The instruction contains a relative offset to be added to the
  46.    instruction pointer register; e.g., JMP short, LOOP.
  47.  
  48. M  The modR/M byte may refer only to memory; e.g., BOUND, LES, LDS, LSS,
  49.    LFS, LGS.
  50.  
  51. O  The instruction has no modR/M byte; the offset of the operand is coded as
  52.    a word or double word (depending on address size attribute) in the
  53.    instruction. No base register, index register, or scaling factor can be
  54.    applied; e.g., MOV (A0-A3).
  55.  
  56. R  The mod field of the modR/M byte may refer only to a general register;
  57.    e.g., MOV (0F20-0F24, 0F26).
  58.  
  59. S  The reg field of the modR/M byte selects a segment register; e.g., MOV
  60.    (8C,8E).
  61.  
  62. T  The reg field of the modR/M byte selects a test register; e.g., MOV
  63.    (0F24,0F26).
  64.  
  65. X  Memory addressed by DS:SI; e.g., MOVS, COMPS, OUTS, LODS, SCAS.
  66.  
  67. Y  Memory addressed by ES:DI; e.g., MOVS, CMPS, INS, STOS.
  68.  
  69.  
  70. Codes for Operant Type
  71.  
  72. a  Two one-word operands in memory or two double-word operands in memory,
  73.    depending on operand size attribute (used only by BOUND).
  74.  
  75. b  Byte (regardless of operand size attribute)
  76.  
  77. c  Byte or word, depending on operand size attribute.
  78.  
  79. d  Double word (regardless of operand size attribute)
  80.  
  81. p  32-bit or 48-bit pointer, depending on operand size attribute.
  82.  
  83. s  Six-byte pseudo-descriptor
  84.  
  85. v  Word or double word, depending on operand size attribute.
  86.  
  87. w  Word (regardless of operand size attribute)
  88.  
  89.  
  90. Register Codes
  91.  
  92. When an operand is a specific register encoded in the opcode, the register
  93. is identified by its name; e.g., AX, CL, or ESI. The name of the register
  94. indicates whether the register is 32-, 16-, or 8-bits wide. A register
  95. identifier of the form eXX is used when the width of the register depends on
  96. the operand size attribute; for example, eAX indicates that the AX register
  97. is used when the operand size attribute is 16 and the EAX register is used
  98. when the operand size attribute is 32.
  99.  
  100.  
  101. One-Byte Opcode Map
  102.  
  103.  
  104.        0         1         2         3         4         5         6        7        8         9         A         B         C         D         E        F
  105.  ╔═══════════════════════════════════════════════════════════╤════════╤════════╤═══════════════════════════════════════════════════════════╤════════╤════════╗
  106.  ║                              ADD                          │  PUSH  │   POP  │                             OR                            │  PUSH  │ 2-byte ║
  107. 0╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┤        │        ├─────────┬─────────┬─────────┬─────────┬─────────┬─────────┤        │        ║
  108.  ║  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  AL,Ib  │ eAX,Iv  │   ES   │   ES   │  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  AL,Ib  │ eAX,Iv  │   CS   │ escape ║
  109.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╪════════╪════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╪════════╪════════╣
  110.  ║                              ADC                          │  PUSH  │   POP  │                            SBB                            │  PUSH  │  POP   ║
  111. 1╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┤        │        ├─────────┬─────────┬─────────┬─────────┬─────────┬─────────┤        │        ║
  112.  ║  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  AL,Ib  │ eAX,Iv  │   SS   │   SS   │  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  AL,Ib  │ eAX,Iv  │   DS   │   DS   ║
  113.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╪════════╪════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╪════════╪════════╣
  114.  ║                              AND                          │  SEG   │        │                            SUB                            │  SEG   │        ║
  115. 2╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┤        │   DAA  ├─────────┬─────────┬─────────┬─────────┬─────────┬─────────┤        │  DAS   ║
  116.  ║  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  AL,Ib  │ eAX,Iv  │  =ES   │        │  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  AL,Ib  │ eAX,Iv  │  =CS   │        ║
  117.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╪════════╪════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╪════════╪════════╣
  118.  ║                              XOR                          │  SEG   │        │                            CMP                            │  SEG   │        ║
  119. 3╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┤        │   AAA  ├─────────┬─────────┬─────────┬─────────┬─────────┬─────────┤        │  AAS   ║
  120.  ║  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  AL,Ib  │ eAX,Iv  │  =SS   │        │  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  AL,Ib  │ eAX,Iv  │  =CS   │        ║
  121.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╣
  122.  ║                               INC general register                          │                              DEC general register                           ║
  123. 4╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────┼─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────╢
  124.  ║   eAX   │   eCX   │   eDX   │   eBX   │   eSP   │   eBP   │  eSI   │  eDI   │   eAX   │   eCX   │   eDX   │   eBX   │   eSP   │   eBP   │   eSI  │  eDI   ║
  125.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╣
  126.  ║                               PUSH general register                         │                          POP into general register                          ║
  127. 5╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────┼─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────╢
  128.  ║   eAX   │   eCX   │   eDX   │   eBX   │   eSP   │   eBP   │  eSI   │  eDI   │   eAX   │   eCX   │   eDX   │   eBX   │   eSP   │   eBP   │  eSI   │  eDI   ║
  129.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  130.  ║         │         │  BOUND  │  ARPL   │   SEG   │   SEG   │ Operand│ Address│  PUSH   │  IMUL   │  PUSH   │  IMUL   │  INSB   │ INSW/D  │ OUTSB  │OUTSW/D ║
  131. 6║  PUSHA  │  POPA   │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  132.  ║         │         │  Gv,Ma  │  Ew,Rw  │   =FS   │   =GS   │  Size  │  Size  │   Ib    │ GvEvIv  │   Ib    │ GvEvIv  │  Yb,DX  │  Yb,DX  │ Dx,Xb  │ DX,Xv  ║
  133.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╣
  134.  ║                    Short displacement jump of condition (Jb)                │                   Short-displacement jump on condition(Jb)                  ║
  135. 7╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────┼─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────╢
  136.  ║   JO    │   JNO   │   JB    │   JNB   │   JZ    │  JNZ    │   JBE  │  JNBE  │   JS    │   JNS   │   JP    │   JNP   │   JL    │  JNL    │  JLE   │  JNLE  ║
  137.  ╠═════════╧═════════╪═════════╪═════════╪═════════╧═════════╪════════╧════════╪═════════╧═════════╧═════════╧═════════╪═════════╪═════════╪════════╪════════╣
  138.  ║  Immediate Grpl   │         │  Grpl   │       TEST        │      XCNG       │                 MOV                   │   MOV   │   LEA   │  MOV   │  POP   ║
  139. 8╟─────────┬─────────┤         │         ├─────────┬─────────┼────────┬────────┼─────────┬─────────┬─────────┬─────────┤         │         │        │        ║
  140.  ║  Eb,Ib  │  Ev,Iv  │         │  Ev,Iv  │  Eb,Gb  │  Ev,Gv  │  Eb,Gb │  Ev,Gv │  Eb,Gb  │  Ev,Gv  │  Gb,Eb  │  Gv,Ev  │  Ew,Sw  │  Gv,M   │  Sw,Ew │   Ev   ║
  141.  ╠═════════╪═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  142.  ║         │              XCHG word or double-word register with eAX           │         │         │  CALL   │         │  PUSHF  │  POPF   │        │        ║
  143. 9║   NOP   ├─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────┤   CBW   │   CWD   │         │  WAIT   │         │         │  SAHF  │  LAHF  ║
  144.  ║         │   eCX   │   eDX   │   eBX   │   eSP   │   eBP   │  eSI   │  eDI   │         │         │   Ap    │         │   Fv    │   Fv    │        │        ║
  145.  ╠═════════╧═════════╧═════════╧═════════╪═════════╪═════════╪════════╪════════╪═════════╧═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  146.  ║                  MOV                  │  MOVSB  │ MOVSW/D │ CMPSB  │CMPSW/D │       TEST        │  STOSB  │ STOSW/D │  LODSB  │ LODSW/D │ SCASB  │SCASW/D ║
  147. A╟─────────┬─────────┬─────────┬─────────┤         │         │        │        ├─────────┬─────────┤         │         │         │         │        │        ║
  148.  ║  AL,Ob  │  eAX,Ov │  Ob,AL  │  Ov,eAX │  Xb,Yb  │  Xv,Yv  │  Xb,Yb │  Xv,Yv │  AL,Ib  │ eAX,Iv  │  Yb,AL  │  Yv,eAX │  AL,Xb  │ eAX,Xv  │  AL,Xb │eAX,Xv  ║
  149.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╣
  150.  ║                       MOV immediate byte into byte register                 │        MOV immediate word or double into word or double register            ║
  151. B╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────┼─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────╢
  152.  ║    AL   │   CL    │   DL    │   BL    │   AH    │   CH    │   DH   │   BH   │   eAX   │   eCX   │   eDX   │   eBX   │   eSP   │   eBP   │   eSI  │  eDI   ║
  153.  ╠═════════╧═════════╪═════════╧═════════╪═════════╪═════════╪════════╧════════╪═════════╪═════════╪═════════╧═════════╪═════════╪═════════╪════════╪════════╣
  154.  ║    Shift Grp2     │      RET near     │   LES   │   LDS   │       MOV       │  ENTER  │         │      RET far      │  INT    │  INT    │        │        ║
  155. C╟─────────┬─────────┼─────────┬─────────┤         │         ├────────┬────────┤         │  LEAVE  ├─────────┬─────────┤         │         │  INTO  │  IRET  ║
  156.  ║  Eb,Ib  │  Ev,Iv  │    Iw   │         │  Gv,Mp  │  Gv,Mp  │  Eb,Ib │  Ev,Iv │  Iw,Ib  │         │   Iw    │         │   3     │  Ib     │        │        ║
  157.  ╠═════════╧═════════╧═════════╧═════════╪═════════╪═════════╪════════╪════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╣
  158.  ║               Shift Grp2              │         │         │        │        │                                                                             ║
  159. D╟─────────┬─────────┬─────────┬─────────┤   AAM   │   AAD   │        │  XLAT  │                  ESC(Escape to coprocessor instruction set)                 ║
  160.  ║   Eb,1  │  Ev,1   │  Eb,CL  │  Ev,CL  │         │         │        │        │                                                                             ║
  161.  ╠═════════╪═════════╪═════════╪═════════╪═════════╧═════════╪════════╧════════╪═════════╤═════════════════════════════╤═══════════════════╤═════════════════╣
  162.  ║ LOOPNE  │  LOOPE  │   LOOP  │  JCXZ   │        IN         │       OUT       │   CALL  │             JNP             │        IN         │       OUT       ║
  163. E║         │         │         │         ├─────────┬─────────┼────────┬────────┤         ├─────────┬─────────┬─────────┼─────────┬─────────┼────────┬────────╢
  164.  ║   Jb    │   Jb    │    Jb   │   Jb    │  AL,Ib  │ eAX,Ib  │  Ib,AL │ Ib,eAX │    Av   │   Jv    │   Ap    │   Jb    │  AL,DX  │ eAX,DX  │ DX,AL  │ DX,eAX ║
  165.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╧════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  166.  ║         │         │         │   REP   │         │         │     Unary Grp3  │         │         │         │         │         │         │INC/DEC │Indirct ║
  167. F║  LOCK   │         │  REPNE  │         │   HLT   │   CMC   ├────────┬────────┤   CLC   │   STC   │   CLI   │   STI   │   CLD   │   STD   │        │        ║
  168.  ║         │         │         │  REPE   │         │         │   Eb   │   Ev   │         │         │         │         │         │         │  Grp4  │  Grp5  ║
  169.  ╚═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╝
  170.  
  171.  
  172. Two-Byte Opcode Map (first byte is 0FH)
  173.  
  174.  
  175.       0         1         2         3         4         5         6        7        8         9         A         B         C         D         E        F
  176.  ╔═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤════════╤════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤════════╤════════╗
  177.  ║         │         │   LAR   │   LSL   │         │         │        │        │         │         │         │         │         │         │        │        ║
  178. 0║  Grp6   │  Grp7   │         │         │         │         │  CLTS  │        │         │         │         │         │         │         │        │        ║
  179.  ║         │         │  Gw,Ew  │  Gv,Ew  │         │         │        │        │         │         │         │         │         │         │        │        ║
  180.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  181.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  182. 1║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  183.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  184.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  185.  ║   MOV   │   MOV   │   MOV   │   MOV   │   MOV   │         │   MOV  │        │         │         │         │         │         │         │        │        ║
  186. 2║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  187.  ║  Cd,Rd  │  Dd,Rd  │  Rd,Cd  │  Rd,Dd  │  Td,Rd  │         │  Rd,Td │        │         │         │         │         │         │         │        │        ║
  188.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  189.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  190. 3║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  191.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  192.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  193.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  194. 4║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  195.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  196.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  197.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  198. 5║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  199.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  200.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  201.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  202. 6║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  203.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  204.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  205.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  206. 7║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  207.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  208.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╪═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╣
  209.  ║                      Long-displacement jump on condition (Jv)               │                 Long-displacement jump on condition (Jv)                    ║
  210. 8╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────┼─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────╢
  211.  ║   JO    │   JNO   │   JB    │   JNB   │   JZ    │   JNZ   │   JBE  │  JNBE  │   JS    │   JNS   │   JP    │   JNP   │   JL    │   JNL   │   JLE  │  JNLE  ║
  212.  ╠═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  213.  ║                              Byte Set on condition (Eb)                     │         │         │         │         │         │         │        │        ║
  214. 9╟─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬────────┤  SETS   │  SETNS  │  SETP   │  SETNP  │  SETL   │  SETNL  │  SETLE │ SETNLE ║
  215.  ║  SETO   │  SETNO  │  SETB   │  SETNB  │  SETZ   │  SETNZ  │  SETBE │ SETNBE │         │         │         │         │         │         │        │        ║
  216.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  217.  ║  PUSH   │   POP   │         │   BT    │  SHLD   │  SHLD   │        │        │  PUSH   │   POP   │         │   BTS   │  SHRD   │  SHRD   │        │  IMUL  ║
  218. A║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  219.  ║   FS    │   FS    │         │  Ev,Gv  │ EvGvIb  │ EvGvCL  │        │        │   GS    │   GS    │         │  Ev,Gv  │ EvGvIb  │ EvGvCL  │        │ Gv,Ev  ║
  220.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╧════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╧════════╣
  221.  ║         │         │   LSS   │   BTR   │   LFS   │   LGS   │      MOVZX      │         │         │  Grp-8  │   BTC   │   BSF   │   BSR   │      MOVSX      ║
  222. B║         │         │         │         │         │         ├────────┬────────┤         │         │         │         │         │         ├─────────────────╢
  223.  ║         │         │   Mp    │  Ev,Gv  │   Mp    │   Mp    │ Gv,Eb  │ Gv,Ew  │         │         │  Ev,Ib  │  Ev,Gv  │  Gv,Ev  │  Gv,Ev  │  Gv,Eb   Gv,Ew  ║
  224.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╤════════╣
  225.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  226. C║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  227.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  228.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  229.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  230. D║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  231.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  232.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  233.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  234. E║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  235.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  236.  ╠═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪════════╪════════╣
  237.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  238. F║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  239.  ║         │         │         │         │         │         │        │        │         │         │         │         │         │         │        │        ║
  240.  ╚═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧════════╧════════╝
  241.  
  242.  
  243. Opcodes determined by bits 5,4,3 of modR/M byte:
  244.  
  245.      G                       ┌───────┬───────┬───────┐
  246.      r                       │  mod  │  nnn  │  R/M  │
  247.      o                       └───────┴───────┴───────┘
  248.      u
  249.      p   000     001     010     011     100     101     110     111
  250.       ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
  251.      1│  ADD  │  OR   │  ADC  │  SBB  │  AND  │  SUB  │  XOR  │  CMP  │
  252.       │       │       │       │       │       │       │       │       │
  253.       ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
  254.      2│  ROL  │  ROR  │  RCL  │  RCR  │  SHL  │  SHR  │       │  SAR  │
  255.       │       │       │       │       │       │       │       │       │
  256.       ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
  257.      3│ TEST  │       │  NOT  │  NEG  │  MUL  │ IMUL  │  DIV  │ IDIV  │
  258.       │ Ib/Iv │       │       │       │AL/eAX │AL/eAX │AL/eAX │AL/eAX │
  259.       ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
  260.      4│  INC  │  DEC  │       │       │       │       │       │       │
  261.       │  Eb   │  Eb   │       │       │       │       │       │       │
  262.       ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
  263.      5│  INC  │  DEC  │ CALL  │ CALL  │  JMP  │  JMP  │ PUSH  │       │
  264.       │  Ev   │  Ev   │  Ev   │  eP   │  Ev   │  Ep   │  Ev   │       │
  265.       └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
  266.  
  267.  
  268. Opcodes determined by bits 5,4,3 of modR/M byte:
  269.  
  270.      G                       ┌───────┬───────┬───────┐
  271.      r                       │  mod  │  nnn  │  R/M  │
  272.      o                       └───────┴───────┴───────┘
  273.      u
  274.      p   000     001     010     011     100     101     110     111
  275.       ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
  276.      6│ SLDT  │  STR  │ LLDT  │  LTR  │ VERR  │ VERW  │       │       │
  277.       │  Ew   │  Ew   │  Ew   │  Ew   │  Ew   │  Ew   │       │       │
  278.       ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
  279.      7│ SGDT  │ SIDT  │ LGDT  │ LIDT  │ SMSW  │       │ LMSW  │       │
  280.       │  Ms   │  Ms   │  Ms   │   Ms  │  Ew   │       │  Ew   │       │
  281.       ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
  282.      8│       │       │       │       │  BT   │  BTS  │  BTR  │  BTC  │
  283.       │       │       │       │       │       │       │       │       │
  284.       └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
  285.  
  286.  
  287.