
	     ModeR/M  16 ⭮ 樨
	

 Wbit - । ࠧ ࠭
 W=0  - 
 W=1  -  ࠧ (16  32 )

 Dbit - ࠢ । 
 D=0  - ॣ  REG/MEM
 D=1  - REG/MEM  ॣ

 Sbit - ७ ।⢥ 
 S=0  -   ࠧ (16  32 )
 S=1  - 

 REG  - । ॣ 饣 祭 8/16/32 
 MODE - । ० 樨   REG/MEM
 REG/MEM - ன ࠭ - ॣ 8/16/32  

 Mode	    00    	  01	  	 10	      11
 REG/MEM 	   		  		  
 
 000	  [BX+SI]  [BX+SI]+imm8  [BX+SI]+imm16  EAX/AX/AL
 001	  [BX+DI]  [BX+DI]+imm8  [BX+DI]+imm16  ECX/CX/CL
 010	  [BP+SI]  [BP+SI]+imm8  [BP+SI]+imm16  EDX/DX/DL
 011	  [BP+DI]  [BP+DI]+imm8  [BP+DI]+imm16  EBX/BX/BL
 100	  [SI]     [SI]+imm8	   [SI]+imm16	   ESP/SP/AH
 101	  [DI]     [DI]+imm8	   [DI]+imm16	   EBP/BP/CH
 110	  [imm16]  [BP]+imm8	   [BP]+imm16	   ESI/SI/DH
 111	  [BX]     [BX]+imm8	   [BX]+imm16	   EDI/DI/BH


 SREG - ᥣ ॣ 000 - ES
			   001 - CS
			   010 - SS
			   011 - DS
			   100 - FS
			   101 - GS

  - ।⢥ ࠭

 

			   i386
			 


  MOVį᫠ ॣ  ॣ/
 Ŀ
 1 0 0 0 1 0 d w mod reg reg/mem 
 

    ॣ/
 Ŀ
 1 1 0 0 0 1 1 w mod 000 reg/mem  + Immediate 8/16 bit
 

    ॣ
 Ŀ
 1 0 1 1 w  reg   + Immediate 8/16 bit       
 

    
  (short form)
 Ŀ
 1 0 1 0 0 0 d w  + Immediate 16 bit
 

  ॣ/  ᥣ ॣ
 Ŀ
 1 0 0 0 1 1 d 0 mod 0 sreg r/m
 

  ᫠  ࠭  ॣ  ॣ/
 Ŀ
  00001111  1011x11w mod reg r/m
 
  x=0 -  ࠭   - MOVZX
  x=1 -  ࠭  - MOVSX

  

  PUSHħ  ⥪ 
 Ŀ
 1 1 1 1 1 1 1 1 mod 110 reg/mem 
 

  POP⥭  ⥪  
 Ŀ
 1 0 0 0 1 1 1 1 mod 000 reg/mem 
 

  PUSH/POP ॣ
 Ŀ
 0 1 0 1 x  reg     x=0 - PUSH , x=1 - POP
 

  PUSH/POP ᥣ⭮ ॣ ES, CS, SS  DS
 Ŀ
 0 0 0 sreg 1 1 x   x=0 - PUSH , x=1 - POP
 

  ᥣ⭮ ॣ ES, CS, SS, DS, FS  GS
 Ŀ
 0 0 0 0 1 1 1 1 1 0 sreg 0 0 x     x=0 - PUSH , x=1 - POP
 

  
 Ŀ
 0 1 1 0 1 0 s 0  + Immediate 8/16 bit
 

  PUSHA/POPA AllReg's
 Ŀ
 0 1 1 0 0 0 0 x    x=0 - PUSH , x=1 - POP
 

  PUSHF/POPF flags
 Ŀ
 1 0 0 1 1 1 0 x    x=0 - PUSH , x=1 - POP
 

 

 XCHG - 

  TEST/XCHG ॣ/  ॣ஬
 Ŀ
 1 0 0 0 0 1 x w mod reg reg/mem    x=0 - TEST , x=1 - XCHG
 

  ॣ  ஬
  (short form)
 Ŀ
 1 0 0 1 0  reg  	     
 

 

  /뢮 १ 
 Ŀ
 1 1 1 0 x 1 y w  + [Immediate 8] -  
 
  xy = 00 - IN   䨪஢ ⮬
  xy = 01 - OUT 뢮  䨪஢ ⮬
  xy = 10 - IN   㠫 ⮬ 㥬 DL/DX
  xy = 11 - OUT 뢮  㠫 ⮬ 㥬 DL/DX

  INS/OUTS  ப /뢮  㠫 ⮬ 㥬 DX
 Ŀ
 0 1 1 0 1 1 x w    x=0 - INS , x=1 - OUTS
 

 

  LEAħ㧪  ॣ ᯮ⥫쭮 
 Ŀ
 1 0 0 0 1 1 0 1 mod reg reg/mem 
 

  㧪 㪠⥫  DS,ES:REG , sreg : 01 - DS
 Ŀ	  00 - ES
 1 1 0 0 0 1 sregmod reg reg/mem 
 

  㧪 㪠⥫  FS,GS,SS:REG , sreg : 100 - FS
 Ŀ	     101 - GS
  00001111 10110 sregmod reg r/m	     010 - SS
 

 

    ⠭ 䫠 CF,IF,DF  Flags
 Ŀ
 1 1 1 1 1 x x x    xxx = 000 - CLC -  CF
 	    001 - STC - ⠭ CF
			    010 - CLI -  IF
			    011 - STI - ⠭ IF
			    100 - CLD -  DF
			    101 - STD - ⠭ DF


  CLTS   䫠 蠣 ० TS
 Ŀ
 0 0 0 0 1 1 1 1  0 0 0 0 0 1 1 0 
 

  CMC   CF
 Ŀ
 1 1 1 1 0 1 0 1 
 

  LAHFħ㧨  AH ॣ 䫠
  SAHF࠭  ॣ 䫠 AH
 Ŀ
 1 0 0 1 1 1 1 x    x=0 - SAHF , x=1 - LAHF
 

 

  䬥᪨  ᪨ 

  ॣ  ॣ஬/	      xxx = 000 - add
 Ŀ	    001 - or
 0 0 x x x 0 d w mod reg reg/mem 	    010 - adc
 	    011 - sbb
					    100 - and
					    101 - sub
					    110 - xor
					    111 - cmp
    ॣ஬/
 Ŀ
 1 0 0 0 0 0 s w mod xxx reg/mem  + Immediate 8/16
 

    ஬ (short form)
 Ŀ
 0 0 x x x 1 0 w  + Immediate 8/16 bit
 

 

  TEST  ஢ઠ ࠧ冷

  TEST/XCHG ॣ/  ॣ
 Ŀ
 1 0 0 0 0 1 x w mod reg reg/mem    x=0 - TEST , x=1 - XCHG
 

 TEST ॣ/  
 Ŀ
 1 1 1 1 0 1 1 w mod 000 reg/mem  + Immediate 8/16
 

 TEST   
 Ŀ
 1 0 1 0 1 0 0 w  + Immediate 8/16		   
 

 

  INC/DEC ॣ/
 Ŀ
 1 1 1 1 1 1 1 w mod 00x reg/mem   x=0 - INC , x=1 - DEC
 

  INC/DEC ॣ
 Ŀ
 0 1 0 0 x  reg  		 
 

 

  NEG     ॣ/
 Ŀ
 1 1 1 1 0 1 1 w mod 011 reg/mem 
 

  NOT   ॣ/
 Ŀ
 1 1 1 1 0 1 1 w mod 010 reg/mem 
 

 

  /   ॣ/
 Ŀ
 1 1 1 1 0 1 1 w mod 1xx reg/mem    xx = 00 - MUL  - 
 	    01 - IMUL - 
					    10 - DIV  - 
					    11 - IDIV - 


   㬭 ॣ  ॣ/
 Ŀ
  00001111  10101111 mod reg r/m
 

   㬭 ॣ/  
 Ŀ
 0 1 1 0 1 0 s 1 mod reg reg/mem  + Immediate 8/16
 

 

  

   ॣ/
 Ŀ
 1 1 0 x 0 0 y w mod zzz reg/mem  + [Immediate 8bit]
 

  xy = 00 - ᤢ  Imm8	      zzz = 000 - ROL
       01 -  ᯮ		    001 - ROR
       10 - ᤢ   ࠧ	    010 - RCL
       11 - ᤢ  Imm8 १ CL	    011 - RCR
					    100 - SHL/SAL
					    101 - SHR
					    110 - SAL - (UnDocumented)
					    111 - SAR


  SHLD/SHRD   ᤢ ॣ/  Imm8
 Ŀ
  00001111  1010x10y mod reg r/m + [Immediate 8 bit]
 
  xy = 00 -   Imm8
       01 -   Imm8 १ CL
       10 - ࠢ  Imm8
       11 - ࠢ  Imm8 १ CL

 

  ४  ७ 

 Ŀ
 0 0 1 x x 1 1 1   xx = 00 - DAA - 筠 ᫥ ᫮
 	  01 - DAS - 筠 ᫥ ⠭
			  10 - AAA - ᫥ ᫮
			  11 - AAS - ᫥ ⠭

 Ŀ
 1 1 0 1 0 1 0 x 0 0 0 0 1 0 1 0 
 
  x=0 - AAM - ४ ᫥ 㬭
  x=1 - AAD - ४ । 

  CBW/CWD  ७
 Ŀ
 1 0 0 1 1 0 0 x 
 
  x=0 - CBW -   ᫮
  x=1 - CWD - ᫮   ᫮

 

  ப    xxx = 010 - MOVS - 뫪
 Ŀ	    011 - CMPS - ࠢ
 1 0 1 0 x x x w 	    101 - STOS -        
 	    110 - LODS - 㧪
			    111 - SCAS - ᪠஢

  INS/OUTS  ப /뢮  㠫 ⮬ १ DX
 Ŀ
 0 1 1 0 1 1 x w    x=0 - INS , x=1 - OUTS
 

  XLAT  ⠡筮 ८ࠧ
 Ŀ
 1 1 0 1 0 1 1 1 
 

  䨪 ७  (稪 ७  CX)
 Ŀ
 1 1 1 1 0 0 1 x   x=0 - REPNZ/REP , x=1 - REPZ
 

 

  ࠡ⪠ ࠧ冷

  BSF/BSR -  ࠧ鸞
 Ŀ
  00001111  1011110x mod reg r/m
 
  x=0 - Bit Scan Forward
  x=1 - Bit Scan Reverse


  BitTest /,
 Ŀ
  00001111  101xx011 mod reg r/m  xx = 00 - BT  ஢
 	   01 - BTS  ⠭
					   10 - BTR  
					   11 - BTC  ஢

  BitTest /,
 Ŀ
  00001111  10111010 mod xxx r/m + Immediate 8 bit
 
  xxx = 010 - BTS  ⠭
	100 - BT  ஢
	110 - BTR  
	111 - BTC  ஢


   XBTS/IBTS - ᪫祭/⠢ ⮢ ப
 Ŀ
 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 x   x=0 - XBTS , x=1 - IBTS
 

 

   । ࠢ

  CALL/JMP  אַ 樥
 Ŀ
 1 1 1 0 1 0 x x  + Immediate 8/16/32
 
  xx = 00 - CALL ᥣ - Rel16
       01 - JMP ᥣ - Rel16
       10 - JMP ᥣ - Abs16:Abs16 (ᬥ饭,ᥫ)
       11 - JMP ᥣ ⪨ - Rel8


  CALL ᥣ  אַ 樥
 Ŀ
 1 0 0 1 1 0 1 0  + Immediate 32 - Abs16:Abs16 (ᬥ饭,ᥫ)
 

  CALL/JMP  ᢥ 樥 १ /
 Ŀ
 1 1 1 1 1 1 1 1 mod xxy reg/mem   xx = 01 - CALL  y=0 - ᥣ
 	   10 - JMP	1 - ᥣ
  xxy = 010 - CALL ᥣ
	011 - CALL ᥣ
	100 - JMP ᥣ
	101 - JMP ᥣ


  ᫮ 室  ⠭ ਧ

						      xxxx = 0000 - o
  Jxx - ᫮ ⪨ 室			     0001 - no
 Ŀ					     0010 - c
 0 1 1 1 x x x x  + Immediate 8 bit - Rel8		     0011 - nc
 					     0100 - z
							     0101 - nz
  Jxx - ᫮  室			     0110 - be
 Ŀ			     0111 - a
 0 0 0 0 1 1 1 1 1 0 0 0 x x x x  + Immediate 16 bit      1000 - s
 			     1001 - ns
							     1010 - p
  SETxx - ⠭ ਧ  ॣ/		     1011 - np
 Ŀ			     1100 - l
  00001111  1001xxxx mod 000 r/m			     1101 - ge
 			     1110 - le
							     1111 - g

    室  稪 CX
 Ŀ			 xx = 00 - LOOPNZ
 1 1 1 0 0 0 x x  + Immediate 8 bit	      01 - LOOPZ
 			      10 - LOOP
					      11 - JCXZ

 

  뢠,ࠡ⪠ 楤  
 Ŀ
 1 1 0 0 1 x x x  + [Immediate 16 bit] + [Immediate 8 bit]
 
  xxx = 000 - ENTER	- 室  楤 (make stack frame)
	001 - LEAVE	- 室  楤
	010 - RETF Imm8 -  쭨  ⪮ ⥪
	011 - RETF	-  쭨

	100 - INT 3	- debug Int
	101 - INT Imm8	- 뢠  
	110 - INTO	- 뢠  ९
	111 - IRET	-   뢠

  RET/RET Imm8 -  
 Ŀ
 1 1 0 0 0 0 1 x   x=0 - RETN Imm8 , x=1 - RETN
 

  BOUND - ஫   ࠭
 Ŀ
 0 1 1 0 0 0 1 0 mod reg reg/mem 
 

 

  ࠢ ஬

  HLT - ⠭
 Ŀ
 1 1 1 1 0 1 0 0 
 

  MOV - 㧪 ࠢ ॣ஢	 xx = 00 - CR0
 Ŀ	      01 - CR1	(UnDocumented)
  00001111  001000d0  000xx reg 	      10 - CR2
 	      11 - CR3

  MOV - 㧪 ⫠ ॣ஢	 xxx = 000 - DR0
 Ŀ	       001 - DR1
  00001111  001000d1  11xxx reg 	       010 - DR2
 	       011 - DR3
					       100 - DR4  (UnDocumented)
					       101 - DR5  (UnDocumented)
					       110 - DR6
					       111 - DR7

  MOV - 㧪 ஢ ॣ஢	 xxx = 000 - TR0  (UnDocumented)
 Ŀ	       001 - TR1  (UnDocumented)
  00001111  001001d0  11xxx reg 	       010 - TR2  (UnDocumented)
 	       011 - TR3
					       100 - TR4
					       101 - TR5
					       110 - TR6
					       111 - TR7

  NOP/XCHG AX,AX -  樨
 Ŀ
 1 0 0 1 0 0 0 0 
 

  WAIT - 
 Ŀ
 1 0 0 1 1 0 1 1 
 

   ᮯ
 Ŀ
 1 1 0 1 1 x x x mod yyy reg/mem 
 
 xxx  yyy ࠧ  樨  ᮯ

 

   䨪

  䨪 ࠧ - 16/32 bit
 Ŀ
 0 1 1 0 0 1 1 x   x=0 - 稭 ࠭ , x=1 - ᭮ 稭
 

  LOCK - 䨪 墠 設
 Ŀ
 1 1 1 1 0 0 0 0 
 

  䨪 饣 ᥣ	  xx = 00 - ES
 Ŀ		       01 - CS
 0 0 1 x x 1 1 0 		       10 - SS
 		       11 - DS

  䨪 饣 ᥣ
 Ŀ
 0 1 1 0 0 1 0 x   x=0 - FS , x=1 - GS
 

  䨪 ७  (稪 ७  CX)
 Ŀ
 1 1 1 1 0 0 1 x   x=0 - REPNZ/REP , x=1 - REPZ
 

 

   ࠢ SHIT

  ARPL  ४ Requested Privilege Level
 Ŀ
 0 1 1 0 0 0 1 1 mod reg reg/mem 
 

  㧪  ਯ ᥣ
 Ŀ
  00001111  0000001x mod reg r/m
 
  x=0 - LAR  㧨 ࠢ 㯠
  x=1 - LSL  㧨 । ᥣ




  LGDT/SGDT  㧨/࠭  ਯ ⠡
 Ŀ
  00001111  00000001 mod 0x0 r/m  x=0 - SGDT , x=1 - LGDT
 

  LIDT/SIDT  㧨/࠭ ⠡ 뢠
 Ŀ
  00001111  00000001 mod 0x1 r/m  x=0 - SIDT , x=1 - LIDT
 

  LLDT/SLDT  㧨/࠭  ਯ ⠡
 Ŀ
  00001111  00000000 mod 0x0 r/m  x=0 - SLDT , x=1 - LLDT
 

  LMSW/SMSW  㧨/࠭ ﭨ 
 Ŀ
  00001111  00000001 mod 1x0 r/m  x=0 - SMSW , x=1 - LMSW
 

  LTR/STR  㧨/࠭ ॣ ࠡ
 Ŀ
  00001111  00000000 mod 0x1 r/m  x=0 - STR , x=1 - LTR
 

  VERR/VERW  ஢  
 Ŀ
  00001111  00000000 mod 10x r/m
 
  x=0 - VERR -  ⥭
  x=1 - VERW -  

 
  Copyright Intel Corp.
  Edited [DaemonSerJ] ,August'98

