MOD REG R/M    SCALE(ss) INDEX BASE
00  000 000      00       000  000

The following opcode tables aid in interpreting 80386 object code. Use the
high order 4 bits of the opcode as an index to a row of the opcode table;
use the low order 4 bits as an index to a column of the table. If the
opcode is 0FH, refer to the 2-byte opcode table, and use the second byte
of the opcode to index the rows and columns of that table.

KEY TO ABBREVIATIONS

Operands are identified by a two-character code of the form Zz. The first
character, an uppercase letter, specifies the addressing method, the
second character, a lowercase letter, specifies the type of operand.

CODES FOR ADDRESSING METHOD

A:      Direct address. The instruction has no mod r/m byte, the address
of the operand is encoded in the instruction' no base register, index
register, or scaling factor can be applied -- for example, far JMP (EA).

C:      The reg field of the mod r/m byte selects a control register, for
example, MOV (0FH 20H, 0FH 22H).

D:      The reg field of the mod r/m byte selects a debug register, for
example, MOV (0FH 21h, 0fh 23h).

E:      A mod r/m byte follows the opcode and specifies the operand. The
operand is either a general register or a memory address. If it is a memory
address, the address is computed from a segment register and any of the
following values: a base register, an index register, a scaling factor or
a displacement.

F:      Flags register.

G:      The reg field of the mod r/m byte selects a general register --
for example, ADD (00H).

I:      Immediate data. The value of the operand is encoded in subsequent
bytes of the instruction.

J:      The instruction contains a relative offset to be added to the
instruction pointer register -- for example, JMP short, LOOP.

M:      The mode r/m bytes may refer only to memory -- for example, BOUND,
LES, LDS, LSS, LFS, LGS.

O:      The instruction has no mod r/m byte; the offset of the operand is
coded as a word or doubleword(depending on address size attribute) in the
instruction. No base register, index register, or scaling factor can be
applied -- for example, MOV (A0H-A3H)

R:      The mod field of the mod r/m byte may refer only to a general
register -- for example, MOV(0FH 20H, 0FH 26H

S:      The reg field of the mod r/m byte selects a segment register --
for example, MOV (8CH,8EH).

T:      The reg field of the mod r/m byte selects a test register -- for
example, MOV (0FH 24H).

X:      Memory addressed by DS:SI -- for example, MOVS, COMPS, OUTS, LODS,
SCAS.

Y:      Memory addressed by ES:DI -- for example, MOVS CMPS, INS, STOS.

CODES FOR OPERAND TYPE

a:      Two single-word operands in memory or two double-word operands in
memory, depending on operand size attribute (used only by BOUND).

b:      Byte (regardless of operand size attribute).

c:      Byte or word, depending on operand size attribute.

d:      Doubleword (regardless of operand size attribute).

p:      32 bit or 48 bit pointer, depending on operand size attribute.

s:      6 byte pseudodescriptor.

v:      Word or doubleword, depending on operand size attribute.

w:      Word (regardless of operand size attribute).

REGISTER CODES

When an operand is a register encoded in the opcode, the register is
identified by its name, for example, AX, CL, or ESI. The name of the
register indicates whether the register is 32 bits, 16 bits, or 8 bits. A
register identifier of the form eXX is used when the width of the register
depends on the operand size attribute; for example, eAX indicates that the
AX register is used when the operand size attribute is 16 and that the EAX
register is used when the operand size attribute is 32.



ONE BYTE OPCODE TABLE

  Ŀ
  0       1       2       3       4       5       6       7       
Ĵ
0ADD     ADD     ADD     ADD     ADD     ADD     PUSH    POP     
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   AL,Ib   eAX,lv  ES      ES      
Ĵ
1ADC     ADC     ADC     ADC     ADC     ADC     PUSH    POP     
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   AL,Lb   eAX,Iv  SS:     SS      
Ĵ
2AND     AND     AND     AND     AND     AND     ES:     DAA     
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   AL,Ib   eAX,Iv                  
Ĵ
3XOR     XOR     XOR     XOR     XOR     XOR     SS:     AAA     
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   AL,Ib   eAX,Iv                  
Ĵ
4INC     INC     INC     INC     INC     INC     INC     INC     
 eAX     eCX     eDX     eBX     eSP     eBp     eSI     eDI     
Ĵ
5PUSH    PUSH    PUSH    PUSH    PUSH    PUSH    PUSH    PUSH    
 eAX     eCX     eDX     eBX     eSP     eBP     eSI     eDI     
Ĵ
6PUSHAD  POPAD   BOUND   ARPL    FS:     GS:     OPSIZE: ADRSIZE:
                 Gv,Ma   Ew,Rw                                   
Ĵ
7JO      JNO     JB      JNB     JZ      JNZ     JBE     JNBE    
 Jb      Jb      Jb      Jb      Jb      Jb      Jb      Jb      
Ĵ
8Group1  Group1          Group1  TEST    TEST    XCHG    XCHG    
 Eb,Ib   Ev,Iv           Ev,Ib   Eb,Gb   Ev,Gv   Ev,Gb   Ev,Gv   
Ĵ
9NOP     XCHG    XCHG    XCHG    XCHG    XCHG    XCHG    XCHG    
         eCX,eAX eDX,eAX eBX,eAX eSP,eAX eBP,eAX ESI,eAX eDI,eAX 
Ĵ
AMOV     MOV     MOV     MOV     MOVSB   MOVSW/D CMPSB   CMPSW/D 
 AL,Ob   eAX,Ov  Ob,AL   Ov,eAX                                  
Ĵ
BMOV     MOV     MOV     MOV     MOV     MOV     MOV     MOV     
 Al,Ib   Cl,Ib   DL,Ib   BL,Ib   AH,Ib   CH,Ib   DH,Ib   BH,Ib   
Ĵ
CGroup2  Group2  RET nearRET nearLES     LDS     MOV     MOV     
 Eb,Ib   Ev,Lb   lw              Gv,Mp   Gv,Mp   Eb,Ib   Ev,Iv   
Ĵ
DGroup2  Group2  Group2  Group2  AAM     AAD             XLAT    
 Eb,1    Ev,1    Eb,CL   Ev,Cl                                   
Ĵ
ELOOPNE  LOOPE   LOOP    JCXZ    IN      IN      OUT     OUT     
 Jb      Jb      Jb      Jb      Al,Ib   eAX,Ib  Ib,AL   eAX     
Ĵ
FLOCK            REPNE   REP     HLT     CMC     Group3  Group3  
                         REPE                    Eb      Ev      


ONE BYTE OPCODE (CONTINUED)

  Ŀ
  8       9       A       B       C       D       E       F       
Ĵ
0OR      OR      OR      OR      OR      OR      PUSH    2byte   
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   AL,Ib   eAX,Iv  CS      escape  
Ĵ
1SBB     SBB     SBB     SBB     SBB     SBB     PUSH    POP     
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   AL,Ib   eAX,Iv  DS      DS      
Ĵ
2SUB     SUB     SUB     SUB     SUB     SUB     CS:     DAS     
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   AL,Ib   eAX,Iv                  
Ĵ
3CMP     CMP     CMP     CMP     CMP     CMP     DS:     AAS     
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   AL,Ib   eAX,Iv                  
Ĵ
4DEC     DEC     DEC     DEC     DEC     DEC     DEC     DEC     
 eAX     eCX     eDX     eBX     eSP     eBP     eSI     eDI     
Ĵ
5POP     POP     POP     POP     POP     POP     POP     POP     
 eAX     eCX     eDX     eBX     eSP     eBP     eSI     eDI     
Ĵ
6PUSH    IMUL    PUSH    IMUL    INSB    INSW/D  OUTSB   OUTSW/D 
 Iv      Gv,Ev,IvIb      Gv,Ev,IbYb,DX   Yv,DX   DX,XB   DX,Xv   
Ĵ
7JS      JNS     JP      JNP     JL      JNL     JLE     JNLE    
 Jb      Jb      Jb      Jb      Jb      Jb      Jb      Jb      
Ĵ
8MOV     MOV     MOV     MOV     MOV     LEA     MOV     POP     
 Eb,Gb   Ev,Gv   Gb,Eb   Gv,Ev   Ew,Sw   Gv,M    Sw,Ew   Ev      
Ĵ
9CBW     CWD     CALL    WAIT    PUSHF   POPF    SAHF    LAHF    
                 Ap              Fv      Fv                      
Ĵ
ATEST    TEST    STOSB   STOSW/D LODSB   LODSW/D SCASB   SCASW/D 
 AL,Ib   eAX,Iv                                                  
Ĵ
BMOV     MOV     MOV     MOV     MOV     MOV     MOV     MOV     
 eAX,Iv  eCX,Iv  eDX,Iv  eBX,Iv  eSP,Iv  eBP,Iv  eSI,Iv  eDI,Iv  
Ĵ
CENTER   LEAVE   RET far         INT     INT     INTO    IRET    
 Iw,Ib           Iw              3       Ib                      
Ĵ
DESC     ESC     ESC     ESC     ESC     ESC     ESC     ESC     
 0       1       2       3       4       5       6       7       
Ĵ
ECALL    JMP     JMP     JMP     IN      IN      OUT     OUT     
 Av      Jv      Ap      Jb      AL,DX   eAX,DX  DX,AL   DX,eAX  
Ĵ
FCLC     STC     CLI     STI     CLD     STD     Group4  Group5  
                                                                 


Two byte Opcode Table (First byte is 0FH)

  Ŀ
  0       1       2       3       4       5       6       7       
Ĵ
0Group6  Group7  LAR     LSL                     CLTS            
                 Gv,Ew   Gv,Ew                                   
Ĵ
2MOV     MOV     MOV     MOV     MOV             MOV             
 Cd,Rd   Dd,Rd   Rd,Cd   Rd,Dd   Td,Rd           Rd,Td           
Ĵ
8JO      JNO     JB      JBN     JZ      JNZ     JBE     JNBE    
 Jv      Jv      Jv      Jv      Jv      Jv      Jv      Jv      
Ĵ
9SETO    SETNO   SETB    SETNB   SETZ    SETNZ   SETBE   SETNBE  
 Eb      Eb      Eb      Eb      Eb      Eb      Eb      Eb      
Ĵ
APUSH    POP             BT      SHLD    SHLD                    
 FS      FS              Ev,Gv   Ev,Gv,IbEv,Gv,CL                
Ĵ
B                LSS     BTR     LFS     LGS     MOVZX   MOVZX   
                 Mp      Ev,Gv   Mp      Mp      Gv,Eb   Gv,Ew   


  Ŀ
                                                                  
  8       9       A       B       C       D       E       F       
Ĵ
8JS      JNS     JP      JNP     JL      JNL     JLE     JNLE    
 Jv      Jv      Jv      Jv      Jv      Jv      Jv      Jv      
Ĵ
9SETS    SETNS   SETP    SETNP   SETL    SETNL   SETLE   SETNLE  
 Eb      Eb      Eb      Eb      Eb      Eb      Eb      Eb      
Ĵ
APUSH    POP             BTS     SHRD    SHRD            IMUL    
 Gs      Gs              Ev,Gv   Ev,Gv,IbEv,Gv,Cl        Gv,Ev   
Ĵ
B                Group8  BTC     BSF     BSR     MOVSX   MOVSX   
                 Ev,Ib   Ev,Gv   Gv,Ev   Gv,Ev   Gv,Eb   Gv,Ew   




Opcodes determined by Bits 5,4 and 3 of mod r/m Byte: mod nnn r/m

  Group
  Ŀ
  000     001     010     011     100     101     110     111     
Ĵ
1ADD     OR      ADC     SBB     AND     SUB     XOR     CMP     
                                                                 
Ĵ
2ROL     ROR     RCL     RCR     SHL     SHR             SAR     
                                                                 
Ĵ
3TEST            NOT     NEG     MUL     IMUL    DIV     IDIV    
 Ib/Iv                           AL/eAX  AL/eAX  AL/eAX  AL/eAX  
Ĵ
4INC     DEC                                                     
 Eb      Eb                                                      
Ĵ
5INC     DEC     CALL    CALL    JMP     JMP     PUSH            
 Ev      Ev      Ev      Ep      Ev      Ep      Ev              
Ĵ
6SLDT    STR     LLDT    LTR     VERR    VERW                    
 Ew      Ew      Ew      Ew      Ew      Ew                      
Ĵ
7SGDT    SIDT    LGDT    LIDT    SMSW            LMSW            
 Ms      Ms      Ms      Ms      Ew              Ew              
Ĵ
8                                BT      BTS     BTR     BTC     
                                                                 



80387 Extensions
The following shows the opcode map to the 80386 instruction set for the
80387 extensions. The operand abbreviations for these tables are:

Es:  Effective address, short real (32-bit)
El:  Effective address, long real (64-bit)
Et:  Effective address, temp real (80-bit)
Ew:  Effective address, word (16-bit)
Ed:  Effective address, doubleword (32-bit)
Eq:  Effective address, quadword (64-bit)
Eb:  Effective address, BCD (80-bit)
Ea:  Effective address, (no operand size)
ST(i):  Stack element i
ST:  Stack top

                           Ŀ
               Format:      7  6  5  4  3  2  1  0 
                             mod      nnn        r/m    
                           

                                      Ŀ
                                        ESC 0  
                                         nnn   
       Ŀ
       000     001     010     011     100     101     110     111     
       Ĵ
    00 FADD    FMUL    FCOM    FCOMP   FSUB    FSUBR   FDIV    FDIVR   
mod=01 Es      Es      Es      Es      Es      Es      Es      Es      
    10                                                                 
       Ĵ
mod=11 FADD    FMUL    FCOM    FCOMP   FSUB    FSUBR   FDIV    FDIVR   
       ST,ST(i)ST,ST(i)ST,ST(i)ST,ST(i)ST,ST(i)ST,ST(i)ST,ST(i)ST,ST(i)
       
       1=r/m

                                       Ŀ
                                         ESC 1  
                                          nnn   
        Ŀ
        000     001     010     011     100     101     110     111     
        Ĵ
     00 FLD             FST     FSTP    FLDENV  FLDCW   FSTENV  FSTCW   
 mod=01 Es              Es      Es      Ea      Ew      Ea      Ew      
     10                                                                 
        Ĵ
     r/mFLD     FXCH    FNOP            FCHS    FLD1    F2XM1   FPREM   
     000ST(0)   ST(0)                                                   
        Ĵ
        FLD     FXCH                    FABS    FLDL2T  FYL2X   FYL2XP1 
     001ST(1)   ST(1)                                                   
        Ĵ
     010FLD     FXCH                            FLDL2E  FPTAN   FSQRT   
        ST(2)   ST(2)                                                   
        Ĵ
     011FLD     FXCH                            FLDPI   FPATAN  FSINCOS 
        ST(3)   ST(3)                                                   
mod=11  Ĵ
     100FLD     FXCH                    FTST    FLDLG2  FXTRACT FRNDINT 
        ST(4)   ST(4)                                                   
        Ĵ
     101FLD     FXCH                    FXAM    FLDLN2  FPREMI  FSCALE  
        ST(5)   ST(5)                                                   
        Ĵ
     110FLD     FXCH                            FLDZ    FDECSTP FSIN    
        ST(6)   ST(6)                                                   
        Ĵ
     111FLD     FXCH                                    FINCSTP FCOS    
        ST(7)   ST(7)                                                   
        

                                       Ŀ
                                         ESC 2  
                                          nnn   
        Ŀ
        000     001     010     011     100     101     110     111     
        Ĵ
     00 FIADD   FIMUL   FICOM   FICOMP  FISUB   FISUBR  FIDIV   FIDIVR  
 mod=01 Ew      Ew      Ew      Ew      Ew      Ew      Ew      Ew      
     10                                                                 
        Ĵ
 mod=11         FUCOMPP*                                                
                                                                        
        
         *r/m=5


                                       Ŀ
                                         ESC 3  
                                          nnn   
        Ŀ
        000     001     010     011     100     101     110     111     
        Ĵ
     00 FILD            FIST    FISTP   FLD             FSTP            
 mod=01 Ew              Ew      Ew      Et              Et              
     10                                                                 
        Ĵ
 mod=11                                 Group 3a                        
                                                                        
        

                             Ŀ
                              Group 3a: mod=11,nnn=100 
        Ŀ
        000     001     010     011     100     101     110     111     
        Ĵ
        (FENI)  (FDISI) FCLEX   FINIT   (FSETPM)                        
                                                                        
        

                                       Ŀ
                                         ESC 4  
                                          nnn   
        Ŀ
        000     001     010     011     100     101     110     111     
        Ĵ
     00 FADD    FMUL    FCOM    FCOMP   FSUB    FSUBR   FDIV    FDIVR   
 mod=01 El      El      El      El      El      El      El      El      
     10                                                                 
        Ĵ
 mod=11 FADD    FMUL    FCOM    FCOMP   FSUB    FSUBR   FDIV    FDIVR   
        ST(i),STST(i),STST(i),STST(i),STST(i),STST(i),STST(i),STST(i),ST
        
        i=r/m

                                       Ŀ
                                         ESC 5  
                                          nnn   
        Ŀ
        000     001     010     011     100     101     110     111     
        Ĵ
     00 FLD             FST     FSTP    FRSTOR          FSAVE   FSTSW   
 mod=01 El              El      El      Ea              Ea      Ew      
     10                                                                 
        Ĵ
 mod=11 FFREE           FST     FSTP    FUCOM   FUCOMP                  
        ST(i)           ST(i)   ST(i)   ST(i)   ST(i)                   
        
        i=r/m

                                       Ŀ
                                         ESC 6  
                                          nnn   
        Ŀ
        000     001     010     011     100     101     110     111     
        Ĵ
        FIADD   FIMUL   FICOM   FICOMP  FISUB   FISUBR  FIDIV   FIDIVR  
        Ed      Ed      Ed      Ed      Ed      Ed      Ed      Ed      
                                                                        
        Ĵ
        FADDP   FMULP           FCOMPP *FSUBP   FSUBRP  FDIVP   FDIVRP  
        ST(i),STST(i),ST                ST(i),STST(i),STST(i),STST(i),ST
        
        * r/m=001

                                       Ŀ
                                         ESC 7  
                                          nnn   
        Ŀ
        000     001     010     011     100     101     110     111     
        Ĵ
        FILD            FIST    FISTP   FBLD    FILD    FBSTP   FISTP   
        Ed              Ed      Ed      Eb      Eq      Eb      Eq      
                                                                        
        Ĵ
        FSTSW*                                                          
          AX                                                            
        
        *r/m=000


========================================================> End of file
;
;       op32
;
;	'386 unique instructions
;
;       For disassembly in 32 bit mode
;
code2seg	segment
farroutine	proc	far
		mov	ax,4c00H
		int	21H	; if this file is executed, just terminate
farroutine	endp	
;
code2seg	ends
;
;
codeseg	segment
;
	assume ds:nothing
	assume es:nothing
	assume ss:nothing
	assume cs:codeseg
	db	90h,90h,90h,90h,90h,90h,90h,90h  ; ensure alignment
;
;	s-i-b byte instructions
;
	db	0,0ch,0c0h			; add  [eax+8*eax],cl               
	db	0,4ch,0c0h,33h			; add  [eax+8*eax+33],cl            
	db	0,8ch,0c0h,11h,22h,33h,44h	; add  [eax+8*eax+44332211],cl      
	db	0,8ch,80h,11h,22h,33h,44h	; add  [eax+4*eax+44332211],cl      
	db	0,8ch,40h,11h,22h,33h,44h	; add  [eax+2*eax+44332211],cl      
	db	0,8ch,44h,11h,22h,33h,44h	; add  ss:[esp+2*eax+44332211],cl   
	db	26h,0,8ch,44h,11h,22h,33h,44h	; add  es:[esp+2*eax+44332211],cl   
;
;  illustrating the 32 bit addressing modes
;
;
;                                               mod   reg   r/m
;                                                00   011  VARIES
	db	8bh,00011000b                   ; mov  ebx,[eax]
	db	8bh,00011001b                   ; mov  ebx,[ecx]
	db	8bh,00011010b                   ; mov  ebx,[edx]
	db	8bh,00011011b                   ; mov  ebx,[ebx]
	db	8bh,00011100b,0                 ; mov  ebx,[eax+eax]
	db	8bh,00011101b,11h,22h,33h,44h   ; mov  ebx,[d32]
	db	8bh,00011110b                   ; mov  ebx,[esi]
	db	8bh,00011111b                   ; mov  ebx,[edi]

;                                               mod   reg    r/m
;                                                01   011   VARIES
	db	8bh,01011000b,11h               ; mov  ebx,[eax+11]
	db	8bh,01011001b,11h               ; mov  ebx,[ecx+11]
	db	8bh,01011010b,11h               ; mov  ebx,[edx+11]
	db	8bh,01011011b,11h               ; mov  ebx,[ebx+11]
	db	8bh,01011100b,0,11h             ; mov  ebx,[eax+eax+11]
	db	8bh,01011101b,11h               ; mov  ebx,ss:[ebp+11]
	db	8bh,01011110b,11h               ; mov  ebx,[esi+11]
	db	8bh,01011111b,11h               ; mov  ebx,[edi+11]

;                                               mod   reg    r/m
;                                                10   011   VARIES
	db	8bh,10011000b,11h,22h,33h,44h   ; mov  ebx,[eax+44332211]
	db	8bh,10011001b,11h,22h,33h,44h   ; mov  ebx,[ecx+44332211]
	db	8bh,10011010b,11h,22h,33h,44h   ; mov  ebx,[edx+44332211]
	db	8bh,10011011b,11h,22h,33h,44h   ; mov  ebx,[ebx+44332211]
	db	8bh,10011100b,0,11h,22h,33h,44h ; mov  ebx,[eax+eax+44332211]
	db	8bh,10011101b,11h,22h,33h,44h   ; mov  ebx,ss:[ebp+44332211]
	db	8bh,10011110b,11h,22h,33h,44h   ; mov  ebx,[esi+44332211]
	db	8bh,10011111b,11h,22h,33h,44h   ; mov  ebx,[edi+44332211]

;                                               mod   reg    r/m
;                                                11   011   VARIES
	db	8bh,11011000b                   ; mov  ebx,[eax]
	db	8bh,11011001b                   ; mov  ebx,[ecx]
	db	8bh,11011010b                   ; mov  ebx,[edx]
	db	8bh,11011011b                   ; mov  ebx,[ebx]
	db	8bh,11011100b                   ; mov  ebx,[esp]
	db	8bh,11011101b                   ; mov  ebx,[ebp]
	db	8bh,11011110b                   ; mov  ebx,[esi]
	db	8bh,11011111b                   ; mov  ebx,[edi]

;  s-i-b byte
;
;                                            mod   reg     ss    index    base
;                                             00   011   VARIES   000     000
	db	8bh,00011100b,00000000b         ;  mov  ebx,[eax+1*eax]
	db	8bh,00011100b,01000000b         ;  mov  ebx,[eax+2*eax]
	db	8bh,00011100b,10000000b         ;  mov  ebx,[eax+4*eax]
	db	8bh,00011100b,11000000b         ;  mov  ebx,[eax+8*eax]

;                                            mod   reg    ss    index    base
;                                             00   011    11   VARIES     000
	db	8bh,00011100b,11000000b         ;  mov  ebx,[eax+8*eax]
	db	8bh,00011100b,11001000b         ;  mov  ebx,[eax+8*ecx]
	db	8bh,00011100b,11010000b         ;  mov  ebx,[eax+8*edx]
	db	8bh,00011100b,11011000b         ;  mov  ebx,[eax+8*ebx]
	db	8bh,00011100b,00100000b         ;  mov  ebx,[eax]
	db	8bh,00011100b,11101000b         ;  mov  ebx,[eax+8*ebp]
	db	8bh,00011100b,11110000b         ;  mov  ebx,[eax+8*esi]
	db	8bh,00011100b,11111000b         ;  mov  ebx,[eax+8*edi]

;                                            mod   reg    ss    index    base
;                                             00   011    11      111   VARIES
	db	8bh,00011100b,11111000b         ;  mov  ebx,[eax+8*edi]
	db	8bh,00011100b,11111001b         ;  mov  ebx,[ecx+8*edi]
	db	8bh,00011100b,11111010b         ;  mov  ebx,[edx+8*edi]
	db	8bh,00011100b,11111011b         ;  mov  ebx,[ebx+8*edi]
	db	8bh,00011100b,11111100b         ;  mov  ebx,[esp+8*edi]
	db	8bh,00011100b,11111101b,11h,22h,33h,44h  
	                                        ;  mov  ebx,[44332211+8*edi]
	db	8bh,00011100b,11111110b         ;  mov  ebx,[esi+8*edi]
	db	8bh,00011100b,11111111b         ;  mov  ebx,[edi+8*edi]

;                                            mod   reg     ss    index    base
;                                             01   011    11      111   VARIES
	db	8bh,01011100b,11111000b,11h     ;  mov  ebx,[eax+8*edi+11]
	db	8bh,01011100b,11111001b,11h     ;  mov  ebx,[ecx+8*edi+11]
	db	8bh,01011100b,11111010b,11h     ;  mov  ebx,[edx+8*edi+11]
	db	8bh,01011100b,11111011b,11h     ;  mov  ebx,[ebx+8*edi+11]
	db	8bh,01011100b,11111100b,11h     ;  mov  ebx,ss:[esp+8*edi+11]
	db	8bh,01011100b,11111101b,11h     ;  mov  ebx,[ebp+8*edi+11]
	db	8bh,01011100b,11111110b,11h     ;  mov  ebx,[esi+8*edi+11]
	db	8bh,01011100b,11111111b,11h     ;  mov  ebx,[edi+8*edi+11]

;                                            mod   reg     ss    index    base
;                                             10   011    11      111   VARIES
    db  8bh,10011100b,11111000b,11h,22h,33h,44h ;  mov  ebx,[eax+8*edi+d32]
    db  8bh,10011100b,11111001b,11h,22h,33h,44h ;  mov  ebx,[ecx+8*edi+d32]
    db  8bh,10011100b,11111010b,11h,22h,33h,44h ;  mov  ebx,[edx+8*edi+d32]
    db  8bh,10011100b,11111011b,11h,22h,33h,44h ;  mov  ebx,[ebx+8*edi+d32]
    db  8bh,10011100b,11111100b,11h,22h,33h,44h ;  mov  ebx,ss:[esp+8*edi+d32]
    db  8bh,10011100b,11111101b,11h,22h,33h,44h ;  mov  ebx,[ebp+8*edi+d32]
    db  8bh,10011100b,11111110b,11h,22h,33h,44h ;  mov  ebx,[esi+8*edi+d32]
    db  8bh,10011100b,11111111b,11h,22h,33h,44h ;  mov  ebx,[edi+8*edi+d32]

;
;			80386 peculiar prefix bytes
;
	db	64h		;fs:
	mov	byte ptr [bx],35
	db	65h		;gs:
	mov	byte ptr [bx],35
	db	66h		;16 bit operand
	adc	cx,1300
	db	66h		;16 bit operand
	adc	ax,1300
	db	67h		;16 bit address
	mov	ax,[2211]
	dw	90h,90h

;
codeseg	ends
;

	end

