$; CodeX 1.0 opcode map 1.0 $; written by Marco Kaufmann, Release 2001/11/01 $; $; This opcode map for CodeX Assembler 1.0 provides support for Intel 086, $; 186,286,386,i486 and i486 recent CPUs like also for 087,287 and 387 $; numerical co-processors. $; $; This file as part of the CodeX Assembler is distributed free, but without $; any warranty, even without the warranty of merchantability. $; I remind, that use is on own risk. $codex_opcode_map $codex_ver 1.0 $map_ver 1.0 $map_date 2001/11/01 $map_author Marco Kaufmann $instsets 087inst ia32 287inst ia32 387inst ia32 086inst ia32 186inst ia32 286inst ia32 386inst ia32 486inst ia32 486_recinst ia32 $cpus 087 set 087inst 287 set 087,287inst 387 set 287,387inst 086 set 086inst 186 set 086,186inst 286 set 186,286inst 386 set 286,386inst 486 set 387,386,486inst 486_rec set 486,486_recinst $regs [086inst] r8: al:0,cl:1,dl:2,bl:3,ah:4,ch:5,dh:6,bh:7 r16: ax:0,cx:1,dx:2,bx:3,sp:4,bp:5,si:6,di:7 sreg: es:0,cs:1,ss:2,ds:3 [087inst] st: st0:0,st1:1,st2:2,st3:3,st4:4,st5:5,st6:6,st7:7 [386inst] r32: eax:0,ecx:1,edx:2,ebx:3,esp:4,ebp:5,esi:6,edi:7 sreg: fs:4,gs:5 cr: cr0:0,cr2:2,cr3:3,cr4:4 dr: dr0:0,dr1:1,dr2:2,dr3:3,dr6:6,dr7:7 $prefixs [086inst] lock ;F0 rep ;F3 repe ;F3 repne ;F2 repnz ;F2 repz ;F3 $insts [086inst] aaa ;37 aad ;D5,0A aam ;D4,0A aas ;3F adc r8/m,r8 ;10 adc r16/m,r16 ;11 o16 adc r8,r8/m ;12 adc r16,r16/m ;13 o16 adc r8/m8,imm8 ;80/2 adc r16/m16,imm16 ;81/2 o16 add r8/m8,imm8 ;80/0 add r16/m16,imm16 ;81/0 o16 add r8/m,r8 ;00 add r16/m,r16 ;01 o16 add r8,r8/m ;02 add r16,r16/m ;03 o16 and r8/m,r8 ;20 and r16/m,r16 ;21 o16 and r8,r8/m ;22 and r16,r16/m ;23 o16 and r8/m8,imm8 ;80/4 and r16/m16,imm16 ;81/4 o16 call rel16 ;E8 o16 call r16/m16 ;FF/2 o16 call imm32 ;9A o16 call far m32 ;FF/3 o16 cbw ;98 o16 clc ;F8 cld ;FC cli ;FA cmc ;F5 cmp r8/m8,imm8 ;80/7 cmp r16/m16,imm16 ;81/7 o16 cmp r8/m,r8 ;38 cmp r16/m,r16 ;39 o16 cmp r8,r8/m ;3A cmp r16,r16/m ;3B o16 cmpsb ;A6 cmpsw ;A7 o16 cwd ;99 o16 daa ;27 das ;2F dec r8/m8 ;FE/1 dec r16/m16 ;FF/1 o16 div r8/m8 ;F6/6 div r16/m16 ;F7/6 o16 hlt ;F4 idiv r8/m8 ;F6/7 idiv r16/m16 ;F7/7 o16 imul r8/m8 ;F6/5 imul r16/m16 ;F7/5 o16 in al,imm8 ;E4 in ax,imm8 ;E5 o16 in al,dx ;EC in ax,dx ;ED o16 inc r8/m8 ;FE/0 inc r16/m16 ;FF/0 o16 int imm8 ;CD int3 ;CC into ;CE iret ;CF iretw ;CF o16 ja rel8 ;77 jae rel8 ;73 jb rel8 ;72 jbe rel8 ;76 jc rel8 ;72 je rel8 ;74 jg rel8 ;7F jge rel8 ;7D jl rel8 ;7C jle rel8 ;7E jna rel8 ;76 jnae rel8 ;72 jnb rel8 ;73 jnbe rel8 ;77 jnc rel8 ;73 jne rel8 ;75 jng rel8 ;7E jnge rel8 ;7C jnl rel8 ;7D jnle rel8 ;7F jno rel8 ;71 jnp rel8 ;7B jns rel8 ;79 jnz rel8 ;75 jo rel8 ;70 jp rel8 ;7A jpe rel8 ;7A jpo rel8 ;7B js rel8 ;78 jz rel8 ;74 jmp rel16 ;E9 o16 jmp r16/m16 ;FF/4 o16 jmp imm32 ;EA o16 lahf ;9F lea r16,m ;8D o16 lds r16,m ;C5 o16 les r16,m ;C4 o16 lodsb ;AC lodsw ;AD o16 loop rel8 ;E2 loope rel8 ;E1 loopz rel8 ;E1 loopne rel8 ;E0 loopnz rel8 ;E0 mov r8/m,r8 ;88 mov r16/m,r16 ;89 o16 mov r8,r8/m ;8A mov r16,r16/m ;8B o16 mov r16/m,sreg ;8C mov sreg,r16/m ;8D mov r8/m8,imm8 ;C6 mov r16/m16,imm16 ;C7 o16 movsb ;A4 movsw ;A5 o16 mul r8/m8 ;F6/4 mul r16,m16 ;F7/4 o16 neg r8/m8 ;F6/3 neg r16/m16 ;F7/3 o16 nop ;90 not r8/m8 ;F6/2 not r16/m16 ;F7/2 o16 or r8/m8,imm8 ;0C or r16/m16,imm16 ;0D o16 or r8/m,r8 ;08 or r16/m,r16 ;09 o16 or r8,r8/m ;0A or r16,r16/m ;0B o16 out imm8,al ;E6 out imm8,ax ;E7 o16 out dx,al ;EE out dx,ax ;EF o16 pop m16 ;8F/0 o16 pop r16 ;58 o16 pop ds ;1F pop es ;07 pop ss ;17 popf ;9D o16 popw ;9D o16 push m16 ;FF/6 o16 push r16 ;50 o16 push cs ;0E push ss ;16 push ds ;1E push es ;06 pushf ;9C o16 pushfw ;9C o16 rcl r8/m8,1 ;D0/2 rcl r8/m8,cl ;D2/2 rcl r16/m16,1 ;D1/2 o16 rcl r16/m16,cl ;D3/2 o16 rcr r8/m8,1 ;D0/3 rcr r8/m8,cl ;D2/3 rcr r16/m16,1 ;D1/3 o16 rcr r16/m16,cl ;D3/3 o16 rol r8/m8,1 ;D0/0 rol r8/m8,cl ;D2/0 rol r16/m16,1 ;D1/0 o16 rol r16/m16,cl ;D3/0 o16 ror r8/m8,1 ;D0/1 ror r8/m8,cl ;D2/1 ror r16/m16,1 ;D1/1 o16 ror r16/m16,cl ;D3/1 o16 ret ;C3 ret imm16 ;C2 ret far ;CB ret far imm16 ;CA sahf ;9E sal r8/m8,1 ;D0/4 sal r8/m8,cl ;D2/4 sal r16/m16,1 ;D1/4 o16 sal r16/m16,cl ;D3/4 o16 sar r8/m8,1 ;D0/7 sar r8/m8,cl ;D2/7 sar r16/m16,1 ;D1/7 o16 sar r16/m16,cl ;D3/7 o16 shl r8/m8,1 ;D0/4 shl r8/m8,cl ;D2/4 shl r16/m16,1 ;D1/4 o16 shl r16/m16,cl ;D3/4 o16 shr r8/m8,1 ;D0/5 shr r8/m8,cl ;D2/5 shr r16/m16,1 ;D1/5 o16 shr r16/m16,cl ;D3/5 o16 sbb r8/m8,imm8 ;80/3 sbb r16/m16,imm16 ;81/3 o16 sbb r8/m,r8 ;18 sbb r16/m,r16 ;19 o16 sbb r8,r8/m ;1A sbb r16,r16/m ;1B o16 scasb ;AE scasw ;AF o16 stc ;F9 std ;FD sti ;FB stosb ;AA stosw ;AB o16 sub r8/m8,imm8 ;80/5 sub r16/m16,imm16 ;81/5 o16 sub r8/m,r8 ;28 sub r16/m,r16 ;29 o16 sub r8,r8/m ;2A sub r16,r16/m ;2B o16 test r8/m8,imm8 ;F6/0 test r16/m16,imm16 ;F7/0 o16 test r8/m,r8 ;84 test r16/m,r16 ;85 o16 test r8,r8/m ;84 test r16,r16/m ;85 o16 wait ;9B xchg r8/m,r8 ;86 xchg r8,r8/m ;86 xchg r16/m,r16 ;87 o16 xchg r16,r16/m ;87 o16 xlatb ;D7 xor r8/m8,imm8 ;80/6 xor r16/m16,imm16 ;81/6 o16 xor r8/m,r8 ;30 xor r16/m,r16 ;31 o16 xor r8,r8/m ;32 xor r16,r16/m ;33 o16 [186inst] bound r16,m ;62 o16 enter imm16,imm8 ;C8 insb ;6C insw ;6D o16 leave ;C9 outsb ;6E outsw ;6F o16 popa ;61 o16 popaw ;61 o16 pusha ;60 o16 pushaw ;60 o16 [286inst] arpl r16/m,r16 ;63 clts ;0F,06 imul r16,[r16/m,]imm16 ;69 o16 jmp m32 ;FF/5 o16 lar r16,r16/m ;0F,02 o16 lgdt m ;0F,01/2 lidt m ;0F,01/3 lldt r16/m ;0F,00/2 lmsw r16/m ;0F,01/6 lsl r16,r16/m ;0F,03 o16 ltr r16/m ;0F,00/3 push imm8 ;6A push imm16 ;68 o16 rcl r8/m8,imm8 ;C0/2 rcl r16/m16,imm8 ;C1/2 o16 rcr r8/m8,imm8 ;C0/3 rcr r16/m16,imm8 ;C1/3 o16 rol r8/m8,imm8 ;C0/0 rol r16/m16,imm8 ;C1/0 o16 ror r8/m8,imm8 ;C0/1 ror r16/m16,imm8 ;C1/1 o16 sal r8/m8,imm8 ;C0/4 sal r16/m16,imm8 ;C1/4 o16 sar r8/m8,imm8 ;C0/7 sar r16/m16,imm8 ;C1/7 o16 shl r8/m8,imm8 ;C0/4 shl r16/m16,imm8 ;C1/4 o16 shr r8/m8,imm8 ;C0/5 shr r16/m16,imm8 ;C1/5 o16 sgdt m ;0F,01/0 sidt m ;0F,01/1 sldt r16/m ;0F,00/0 smsw r16/m ;0F,01/4 str r16/m ;0F,00/1 verr r16/m ;0F,00/4 verw r16/m ;0F,00/5 [386inst] adc r32/m,r32 ;11 o32 adc r32,r32/m ;13 o32 adc r32/m32,imm32 ;81/2 o32 add r32/m32,imm32 ;81/0 o32 add r32/m,r32 ;01 o32 add r32,r32/m ;03 o32 and r32/m,r32 ;21 o32 and r32,r32/m ;23 o32 and r32/m32,imm32 ;81/4 o32 bound r32,m ;62 o32 bsf r16,r16/m ;0F,BC o16 bsf r32,r32/m ;0F,BC o32 bsr r16,r16/m ;0F,BD o16 bsr r32,r32/m ;0F,BD o32 bt r16/m,r16 ;0F,A3 o16 bt r32/m,r32 ;0F,A3 o32 bt r16/m16,imm8 ;0F,BA/4 o16 bt r32/m32,imm8 ;0F,BA/4 o32 btc r16/m,r16 ;0F,BB o16 btc r32/m,r32 ;0F,BB o32 btc r16/m16,imm8 ;0F,BA/7 o16 btc r32/m32,imm8 ;0F,BA/7 o32 btr r16/m,r16 ;0F,B3 o16 btr r32/m,r32 ;0F,B3 o32 btr r16/m16,imm8 ;0F,BA/6 o16 btr r32/m32,imm8 ;0F,BA/6 o32 bts r16/m,r16 ;0F,AB o16 bts r32/m,r32 ;0F,AB o32 bts r16/m16,imm8 ;0F,BA/5 o16 bts r32/m32,imm8 ;0F,BA/5 o32 call rel32 ;E8 o32 call r32/m32 ;FF/2 o32 call imm48 ;9A o32 call far m48 ;FF/3 o32 cdq ;99 o32 cmp r32/m32,imm32 ;81/7 o32 cmp r32/m,r32 ;39 o32 cmp r32,r32/m ;3B o32 cmpsd ;A7 o32 cwde ;98 o32 dec r32/m32 ;FF/1 o32 div r32/m32 ;F7/6 o32 idiv r32/m32 ;F7/7 o32 imul r32/m32 ;F7/5 o32 imul r16,r16/m ;0F,AF o16 imul r32,r32/m ;0F,AF o32 imul r32,[r32/m,]imm32 ;69 o32 in eax,imm8 ;E5 o32 in eax,dx ;ED o32 inc r32/m32 ;FF/0 o32 insd ;6D o32 iretd ;CF o32 ja rel32 ;0F,87 o32 jae rel32 ;0F,83 o32 jb rel32 ;0F,82 o32 jbe rel32 ;0F,86 o32 jc rel32 ;0F,82 o32 jcxz rel8 ;E3 o16 jecxz rel8 ;E3 o32 je rel32 ;0F,84 o32 jg rel32 ;0F,8F o32 jge rel32 ;0F,8D o32 jl rel32 ;0F,8C o32 jle rel32 ;0F,8E o32 jna rel32 ;0F,86 o32 jnae rel32 ;0F,82 o32 jnb rel32 ;0F,83 o32 jnbe rel32 ;0F,87 o32 jnc rel32 ;0F,83 o32 jne rel32 ;0F,85 o32 jng rel32 ;0F,8E o32 jnge rel32 ;0F,8C o32 jnl rel32 ;0F,8D o32 jnle rel32 ;0F,8F o32 jno rel32 ;0F,81 o32 jnp rel32 ;0F,8B o32 jns rel32 ;0F,89 o32 jnz rel32 ;0F,85 o32 jo rel32 ;0F,80 o32 jp rel32 ;0F,8A o32 jpe rel32 ;0F,8A o32 jpo rel32 ;0F,8B o32 js rel32 ;0F,88 o32 jz rel32 ;0F,84 o32 jmp rel32 ;E9 o32 jmp r32/m32 ;FF/4 o32 jmp imm48 ;EA o32 jmp m48 ;FF/5 o32 lar r32,r32/m ;0F,02 o32 lea r32,m ;8D o32 lds r32,m ;C5 o32 lss r16,m ;0F,B2 o16 lss r32,m ;0F,B2 o32 les r32,m ;C4 o32 lfs r16,m ;C4 o16 lfs r32,m ;0F,B4 o32 lgs r16,m ;0F,B5 o16 lgs r32,m ;0F,B5 o32 lodsd ;AD o32 lsl r32,r32/m ;0F,03 o32 mov r32/m,r32 ;89 o32 mov r32,r32/m ;8B o32 mov r32,imm32 ;B8 o32 mov r32,cr ;0F,20 mov cr,r32 ;0F,22 mov r32,dr ;0F,21 mov dr,r32 ;0F,23 movsd ;A5 o32 movsx r16,r8/m ;0F,BE o16 movsx r32,r8/m ;0F,BE o32 movsx r32,r16/m ;0F,BF movzx r16,r8/m ;0F,B6 o16 movzx r32,r8/m ;0F,B6 o32 movzx r32,r16/m ;0F,B7 mul r32/m32 ;F7/4 o32 neg r32/m32 ;F7/3 o32 not r32/m32 ;F7/2 o32 or r32/m32,imm32 ;81/1 o32 or r32/m,r32 ;09 o32 or r32,r32/m ;0B o32 out imm8,eax ;E7 o32 out dx,eax ;EF o32 outsd ;6F o32 pop m32 ;8F/0 o32 pop r32 ;58 o32 pop fs ;0F,A1 pop gs ;0F,A9 popad ;61 o32 popfd ;9D o32 push m32 ;FF/6 o32 push r32 ;50 o32 push imm32 ;68 o32 push fs ;0F,A0 push gs ;0F,A8 pushad ;60 o32 pushfd ;9C o32 rcl r32/m32,cl ;D3/2 o32 rcl r32/m32,imm8 ;C1/2 o32 rcr r32/m32,cl ;D3/3 o32 rcr r32/m32,imm8 ;C1/3 o32 rol r32/m32,cl ;D3/0 o32 rol r32/m32,imm8 ;C1/0 o32 ror r32/m32,cl ;D3/1 o32 ror r32/m32,imm8 ;C1/1 o32 sal r32/m32,cl ;D3/4 o32 sal r32/m32,imm8 ;C1/4 o32 sar r32/m32,cl ;D3/7 o32 sar r32/m32,imm8 ;C1/7 o32 shl r32/m32,cl ;D3/4 o32 shl r32/m32,imm8 ;C1/4 o32 shr r32/m32,cl ;D3/5 o32 shr r32/m32,imm8 ;C1/5 o32 sbb r32/m32,imm32 ;81/3 o32 sbb r32/m,r32 ;19 o32 sbb r32,r32/m ;1B o32 scasd ;AF o32 seta r8/m ;0F,97 setae r8/m ;0F,93 setb r8/m ;0F,92 setbe r8/m ;0F,96 setc r8/m ;0F,92 sete r8/m ;0F,94 setg r8/m ;0F,9F setge r8/m ;0F,9D setl r8/m ;0F,9C setle r8/m ;0F,9E setna r8/m ;0F,96 setnae r8/m ;0F,92 setnb r8/m ;0F,93 setnbe r8/m ;0F,97 setnc r8/m ;0F,93 setne r8/m ;0F,95 setng r8/m ;0F,9E setnge r8/m ;0F,9C setnl r8/m ;0F,9D setnle r8/m ;0F,9F setno r8/m ;0F,91 setnp r8/m ;0F,9B setns r8/m ;0F,99 setnz r8/m ;0F,95 seto r8/m ;0F,90 setp r8/m ;0F,9A setpe r8/m ;0F,9A setpo r8/m ;0F,9B sets r8/m ;0F,98 setz r8/m ;0F,94 shld [r16/m,]r16,imm8 ;0F,A4 o16 shld [r32/m,]r32,imm8 ;0F,A4 o32 shld [r16/m,]r16,cl ;0F,A5 o16 shld [r32/m,]r32,cl ;0F,A5 o32 shrd [r16/m,]r16,imm8 ;0F,AC o16 shrd [r32/m,]r32,imm8 ;0F,AC o32 shrd [r16/m,]r16,cl ;0F,AD o16 shrd [r32/m,]r32,cl ;0F,AD o32 stosd ;AB o32 sub r32/m32,imm32 ;81/5 o32 sub r32/m,r32 ;29 o32 sub r32,r32/m ;2B o32 test r32/m32,imm32 ;F7/0 o32 test r32/m,r32 ;85 o32 test r32,r32/m ;85 o32 xchg r32/m,r32 ;87 o32 xchg r32,r32/m ;87 o32 xor r32/m32,imm32 ;81/6 o32 xor r32/m,r32 ;31 o32 xor r32,r32/m ;33 o32 [087inst] f2xm1 ;D9,F0 fabs ;D9,E1 fadd m32 ;D8/0 fadd m64 ;DC/0 fadd st0,st ;D8,C0 fadd st,st0 ;DC,C0 faddp st,st0 ;DE,C0 faddp ;DE,C1 fbld m80 ;DF/4 fbstp m80 ;DF/6 fchs ;D9,E0 fclex ;9B,DB,E2 fcom m32 ;D8/2 fcom m64 ;DC/2 fcom st ;D8,D0 fcom ;D8,D1 fcomp m32 ;D8/3 fcomp m64 ;DC/3 fcomp st ;D8,D8 fcomp ;D8,D9 fcompp ;DE,D9 fdecstp ;D9,F6 fdiv m32 ;D8/6 fdiv m64 ;DC/6 fdiv st0,st ;D8,F0 fdiv st,st0 ;DC,F8 fdivp st,st0 ;DE,F8 fdivp ;DE,F9 fdivr m32 ;D8/7 fdivr m64 ;DC/7 fdivr st0,st ;D8,F8 fdivr st,st0 ;DC,F0 fdivrp st,st0 ;DE,F0 fdivrp ;DE,F1 ffree st ;DD,C0 fiadd m16 ;DE/0 fiadd m32 ;DA/0 ficom m16 ;DE/2 ficom m32 ;DA/2 ficomp m16 ;DE/3 ficomp m32 ;DA/3 fidiv m16 ;DE/6 fidiv m32 ;DA/6 fidivr m16 ;DE/7 fidivr m32 ;DA/7 fild m16 ;DF/0 fild m32 ;DB/0 fild m64 ;DF/5 fimul m16 ;DE/1 fimul m32 ;DA/1 fincstp ;D9,F7 finit ;9B,DB,E3 fist m16 ;DF/2 fist m32 ;DB/2 fistp m16 ;DF/3 fistp m32 ;DB/3 fistp m64 ;DF/7 fisub m16 ;DE/4 fisub m32 ;DA/4 fisubr m16 ;DE/5 fisubr m32 ;DA/5 fld m32 ;D9/0 fld m64 ;DD/0 fld m80 ;DB/5 fld st ;D9,C0 fld1 ;D9,E8 fldcw m ;D9/5 fldenv m ;D9/4 fldenv16 m ;D9/4 o16 fldl2e ;D9,EA fldl2t ;D9,E9 fldlg2 ;D9,EC fldln2 ;D9,ED fldpi ;D9,EB fldz ;D9,EE fmul m32 ;D8/1 fmul m64 ;DC/1 fmul st0,st ;D8,C8 fmul st,st0 ;DC,C8 fmulp st,st0 ;DE,C8 fmulp ;DE,C9 fnop ;D9,D0 fnclex ;DB,E2 fninit ;DB,E3 fnsave m ;DD/6 fnsave16 m ;DD/6 o16 fnstcw m ;D9/7 fnstenv m ;D9/6 fnstenv16 m ;D9/6 o16 fnstsw m ;DD/7 fpatan ;D9,F3 fprem ;D9,F8 fptan ;D9,F2 frndint ;D9,FC frstor m ;DD/4 frstor16 m ;DD/4 o16 fsave m ;9B,DD/6 fsave16 m ;9B,DD/6 o16 fscale ;D9,FD fsqrt ;D9,FA fst m32 ;D9/2 fst m64 ;DD/2 fst st ;DD,D0 fstp m32 ;D9/3 fstp m64 ;DD/3 fstp m80 ;DB/7 fstp st ;DD,D8 fstcw m ;9B,D9/7 fstenv m ;9B,D9/6 fstenv16 m ;9B,D9/6 o16 fstsw m ;9B,DD/7 fsub m32 ;D8/4 fsub m64 ;DC/4 fsub st0,st ;D8,E0 fsub st,st0 ;DC,E8 fsubp st,st0 ;DE,E8 fsubp ;DE,E9 fsubr m32 ;D8/5 fsubr m64 ;DC/4 fsubr st0,st ;D8,E8 fsubr st,st0 ;DC,E0 fsubrp st,st0 ;DE,E0 fsubrp ;DE,E1 ftst ;D9,E4 fwait ;9B fxam ;D9,E5 fxch st ;D9,C8 fxch ;D9,C9 fxtract ;D9,F4 fyl2x ;D9,F1 fyl2xp1 ;D9,F9 [287inst] fnstsw ax ;DF,E0 fstsw ax ;9B,DF,E0 [387inst] fcos ;D9,FF fldenv32 m ;D9/4 o32 fnsave32 m ;DD/6 o32 fnstenv32 m ;D9/6 o32 fprem1 ;D9,F5 frstor32 m ;DD/4 o32 fsave32 m ;9B,DD/6 o32 fsin ;D9,FE fsincos ;D9,FB fstenv32 m ;9B,D9/6 o32 fucom st ;DD,E0 fucom ;DD,E1 fucomp st ;DD,E8 fucomp ;DD,E9 fucompp ;DA,E9 [486inst] bswap r32 ;0F,C8 cmpxchg r8/m,r8 ;0F,B0 cmpxchg r16/m,r16 ;0F,B1 o16 cmpxchg r32/m,r32 ;0F,B1 o32 invd ;0F,08 invlpg m ;0F,01/7 wbinvd ;0F,09 xadd r8/m,r8 ;0F,C0 xadd r16/m,r16 ;0F,C1 o16 xadd r32/m,r32 ;0F,C1 o32 [486_recinst] cpuid ;0F,A2 $end